Play框架中的JPA 2.0和@Type注释

时间:2012-04-07 20:05:11

标签: jpa-2.0 jodatime playframework-2.0

我想用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"

1 个答案:

答案 0 :(得分:4)

是的,您必须将 org.hibernate.annotations 添加到您的类路径中。
@Type是Hibernate逻辑(Custom UserType)的一部分,它不是JPA的逻辑 因此,您必须将JPA注释与Hibernate注释混合使用