【问题标题】:JPA annotations = EJB3 annotations = Hibernate annotations?JPA 注释 = EJB3 注释 = Hibernate 注释?
【发布时间】:2011-12-07 08:27:36
【问题描述】:

我正在使用 JBoss 工具将数据库模式逆向工程为 POJO。具体来说,我在 hibernatetool ANT 任务中使用了 hbm2java 选项。在 hbm2java 选项下,您可以指定 ejb3=true 在您的 POJO 中生成 EJB3 (JPA?) 注释。我的问题是这些注释是否是 JPA 注释?或者,更一般地说,JPA 注释、Hibernate 注释和 EJB3 注释之间有什么区别。它们本质上都一样吗?

【问题讨论】:

    标签: hibernate jpa annotations ejb-3.0 jboss-tools


    【解决方案1】:

    JPA(Java Persistence API)注解声明了 Java 类应该如何被持久化到数据库中。 Hibernate 注解是 JPA 的一种实现,以及一些特定于 Hibernate 框架的额外注解。 EJB(Enterprise Java Beans)注解与 JPA 不同,用于描述 EJB 框架内业务逻辑的更一般方面(事务、并发、安全等)

    【讨论】:

    • 当使用 ejb3=true 时,工具中的 hbm2java 选项具体生成了什么?生成的注释看起来像 Hibernate/JPA 注释,并且导入都是 javax.persistence.*?
    • 更正:Hibernate 注释就是这样...... Hibernate 特定的注释;它们不是 JPA 的实现。 JPA 注释都在 javax.persistence 中。如果您想符合标准并独立于实现(也就是一件好事),请使用 JPA 注释,就这么简单。
    • 如果“Hibernate annotations”是指“org.hibernate.annotations.*”,那么 DataNucleus 是正确的。我将其视为可用于与 Hibernate 系统交互的注释。 Hibernate 本身提供了 JPA 的实现。
    • @OrangeDog,是的,用于名为“Hibernate Annotations”的项目。 JPA 显然都是由 persistence-api.jar 提供的
    • @DataNucleus 好吧,我昨晚自己也做了一些研究,基本上发现了同样的事情。我想我在我的 OP 中不够清楚,但我专门谈论的是 JPA 注释(与 Hibernate 框架注释相比)。当您从模式反向工程 POJO 时,JBoss Tools 可以选择为您创建这些注释。 hbm2java 任务中的选项是 ejb3,显然是指 JPA 规范是 EJB3 规范的一部分。
    猜你喜欢
    • 1970-01-01
    • 2021-03-22
    • 2010-09-21
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多