【发布时间】:2011-11-02 19:06:45
【问题描述】:
我正在尝试更新到 Hibernate 4,但我发现 org.hibernate.annotations.Entity 已被弃用。然而,似乎没有任何文件表明情况如此。有人对此有任何见解吗?
@org.hibernate.annotations.Entity(dynamicUpdate = true)
【问题讨论】:
标签: java hibernate deprecated
我正在尝试更新到 Hibernate 4,但我发现 org.hibernate.annotations.Entity 已被弃用。然而,似乎没有任何文件表明情况如此。有人对此有任何见解吗?
@org.hibernate.annotations.Entity(dynamicUpdate = true)
【问题讨论】:
标签: java hibernate deprecated
是的,它在 4.0+ 中已弃用:
Deprecate org.hibernate.annotations.Entity
Its individual attributes/values should become annotations.
Schedule for removal in 4.1
你应该改用@DynamicUpdate
这里有一个fixed JIRA 在谈论它。
【讨论】:
@DynamicInsert注解也存在。
来自Hibernate Getting Started Guide:
@javax.persistence.Entity注解用于将一个类标记为 一个实体。它的功能与类映射元素相同 在第 2.3 节“映射文件”中讨论。此外,@javax.persistence.Table注解明确指定表 姓名。如果没有此规范,默认表名将是 事件)。
由于 org.hibernate.annotations.Entity 已被弃用,您应该使用 Java EE 注释。另外,正如 tolitius 已经提到的,对于@org.hibernate.annotations.Entity 的注解配置,您应该使用相应的注解,例如@DynamicUpdate.
希望对您有所帮助。
注意:Event 是示例中注释的类的名称,这就是为什么它声明“默认表名将是 EVENT”。
【讨论】:
使用 JPA @Entity 注释而不是 Hibernate @Entity 注释。看看你的进口,它应该说
import javax.persistence.Entity;
而不是
import org.hibernate.annotations.Entity;
【讨论】:
为了将来的目的,请参阅 Hibernate 4.0 已弃用的 API 列表。链接如下:- Deprecated API
【讨论】: