我在 JPA 实体类中有问题。该实体正常工作,但今天我添加了另一个字段(一个简单的字符串,数据库中的 varchar(255) NOT NULL)。当我尝试坚持一个新实体时,我得到一个
java.sql.SQLException: Field 'companyLogoUrl' doesn't have a default value
嗯,这是真的。该列没有默认值。但在我的代码中,我为它设置了值。当我查看生成的插入语句时,该字段不存在。
INSERT INTO COMPANY (ACCOUNTNUMBER, ACCOUNTOWNER, BANK, BANKCODE, CHANGEDAT,
COMPANYNAME, CREATEDAT, addressId)
变量的名称与列名匹配,因此没有可能导致错误的注释。它就像其他工作正常的字段/列一样被对待。
提前感谢您的帮助!
编辑:
这是类(一个groovy类):
@Entity
class Company extends KupiumEntity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
final int companyId
String companyName
String bank
String bankCode
String accountNumber
String accountOwner
String companyLogoUrl
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="addressId")
Address address = new Address()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyId")
List<Invoice> invoices = new ArrayList<Invoice>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyId")
List<Kupon> kupons = new ArrayList<Kupon>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="mandatorId")
List<Mandator> mandators = new ArrayList<Mandator>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyAppId")
List<CompanyApp> companyApps = new ArrayList<CompanyApp>()
}
编辑2:很抱歉造成混乱。表中的字段和列名为“companyLogoUrl”