我想用Play Framework 2.0试用Joda Time。所以我有这个名为发布的课程:
@Entity
public class CommunicationLog extends Model {
private static final long serialVersionUID = 7846963755390952329L;
@Id
public int pk;
public Task taskRef;
public String comment;
@Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime createdDate;
public Person personRef;
}
在这篇文章(Persist Joda-time's DateTime via Hibernate)中,我读过使用 joda-time-hibernate 。所以我将它添加到我的SBT依赖项中,然后下载jar文件并将其添加到我的类路径中:
"joda-time" % "joda-time-hibernate" % "1.3"
但问题仍然是 @Type 无法解决。我还需要将org.hibernate.annotations和hibernate核心添加到我的类路径中吗?为什么这不是JPA 2.0的一部分?或者我在项目中错过了其他什么?
编辑2012-05-07:已解决
当我添加以下依赖项时,它会起作用:
"org.hibernate" % "hibernate-core" % "3.5.6-Final",
"org.hibernate" % "hibernate-annotations" % "3.5.6-Final",
"joda-time" % "joda-time-hibernate" % "1.3"
答案 0 :(得分:4)
是的,您必须将 org.hibernate.annotations 添加到您的类路径中。
@Type
是Hibernate逻辑(Custom UserType)的一部分,它不是JPA的逻辑
因此,您必须将JPA注释与Hibernate注释混合使用