java - JPA 在持久化实体时忽略字段

标签 java jpa entity

我在 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”

最佳答案

好吧,我今天解决了这个问题,尽管我仍然不知道原因是什么。

我尝试运行我的unitTests,这些测试告诉我他们在这个项目中找不到pom.xml。这有点令人惊讶,因为它不是 Maven 项目,所以我不明白他为什么要寻找它。无论如何,我创建了一个新项目,将源代码从旧项目复制到新项目,然后......它可以工作。

我仍然很难理解为什么 eclipse 甚至会将其视为一个 Maven 项目(否则他为什么要寻找 pom.xml?)

对于字段/列名称的混淆,我再次表示歉意。谢谢你们的帮助,伙计们!

关于java - JPA 在持久化实体时忽略字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235899/

相关文章:

java - 将 Java 中的购物篮存储为数据库中的 Blob ......或者不是?

java - 如何正确实现IAdaptable?

java - JUnit 5 无法模拟从被测函数调用的函数

java - Hibernate将表id作为外键插入另一个表中

hibernate - java.sql.SQLException : Invalid value for getInt() - 'foo'

java - 如何使SurfaceView中的矩形对象可点击(setOnItemClickListener)

mysql - 如何使用EntityManager为MySql JSON_EXTRACT函数创建JPQL查询

java - 创建 DB 实体类时的 NetBeans 问题

Symfony2在实体存储库中获取用户ID

java - Hibernate 错误在@PostPersist 方法中保留一个实体