Hibernate + H2不更新yes_no类型列

时间:2016-04-25 14:04:26

标签: hibernate jpa h2

我无法在此处或在Google上找到答案。

我的问题如下:
我有一个带有yes_no类型列的实体

public class MyEntity {

  @Column(name = "IS_DELETED")
  @Type(type = "yes_no")
  private Boolean itemDeleted = Boolean.FALSE;
}

在数据库中,该列是CHAR(1)

IS_DELETED CHAR(1) CHECK ("IS_DELETED" IN ('Y', 'N'))

以下代码在我的JUnit测试中在H2中出现问题(在应用程序运行时它与Oracle运行良好):

myEntityRepositoryService.save(myEntity);

yes_no类型的所有列都已正确更新。我启用了一些hibernate日志来检查提交是否发生,如果事务被释放,......一切正常。所有列都已更新,但不是yes_no列。

我试图在保存之前的代码中的其他字段(如随机数)中设置一些随机值。它可以工作,保存值但不保存布尔列。

请注意,存储库服务扩展 org.springframework.data.jpa.repository.JpaRepository

Hibernate YesNoType是否存在已知问题?难道我做错了什么? H2需要特殊配置吗?

1 个答案:

答案 0 :(得分:0)

问题不是H2。相反,你的JpaRepository可能没有利用Hibernate。请确保它使用Hibernate EntityManager而不是其他一些实现(例如EclipseLink)。