【问题标题】:org.hibernate.annotations.Entity deprecated in Hibernate 4?org.hibernate.annotations.Entity 在 Hibernate 4 中已弃用?
【发布时间】:2011-11-02 19:06:45
【问题描述】:

我正在尝试更新到 Hibernate 4,但我发现 org.hibernate.annotations.Entity 已被弃用。然而,似乎没有任何文件表明情况如此。有人对此有任何见解吗?

@org.hibernate.annotations.Entity(dynamicUpdate = true)

【问题讨论】:

    标签: java hibernate deprecated


    【解决方案1】:

    是的,它在 4.0+ 中已弃用:

    Deprecate org.hibernate.annotations.Entity
    Its individual attributes/values should become annotations. 
    Schedule for removal in 4.1
    

    你应该改用@DynamicUpdate

    这里有一个fixed JIRA 在谈论它。

    【讨论】:

    • 谢谢。在这一点上,升级到 Hibernate 4 被证明有点棘手。我什至无法创建会话工厂:
    • 注意@DynamicInsert注解也存在。
    【解决方案2】:

    来自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”。

    【讨论】:

      【解决方案3】:

      使用 JPA @Entity 注释而不是 Hibernate @Entity 注释。看看你的进口,它应该说

          import javax.persistence.Entity;
      

      而不是

          import org.hibernate.annotations.Entity;
      

      【讨论】:

        【解决方案4】:

        为了将来的目的,请参阅 Hibernate 4.0 已弃用的 API 列表。链接如下:- Deprecated API

        【讨论】:

          猜你喜欢
          • 2011-04-01
          • 1970-01-01
          • 2016-01-17
          • 2020-07-29
          • 2020-03-18
          • 2014-08-11
          • 2011-03-04
          • 1970-01-01
          • 2017-01-06
          相关资源
          最近更新 更多