Hibernate自定义类型以及JPA2标准

时间:2012-08-30 08:31:35

标签: hibernate java-ee jpa-2.0 criteria

至于遗产原因,我们在oracle db中将日期存储为NUMBER(例如1101980是1980年10月1日)。

我们正在使用jboss AS 7.1.2以及hibernate作为持久性提供程序。 为了能够在我的实体中使用java.util.Date,我创建了一个hibernate自定义类型,用于在java.util.Date和数据库中的NUMBER之间进行转换。实体的属性相应地用hibernate的@Type注释。

到目前为止,这已经非常有效。但是现在我们开始使用JPA 2的标准api,对于这些查询,自定义类型不会被应用。

E.g。我将出生日期设置为java.util.date:

Predicate birthday = cb.equal( person.get( Person_.dateOfBirth ), date );

但是当我执行查询时,我得到了

  

ORA-00932:不一致的数据类型:预期的NUMBER得到了TIMESTAMP

这表示未应用自定义类型。有办法解决这个问题吗?也许通过使用任何hibernate的特定标准apis?我真的不希望Long作为我的实体的日期

0 个答案:

没有答案