JPA和Hbernate中的@ID注释有什么不同?有什么不同吗?

时间:2017-10-11 08:44:38

标签: hibernate

我是hibernate的新手,因为我们知道jpa只是hibernate的规范,但是在实体类中我们使用来自javax.persistence包的@id注释来声明id作为主键,是id通过使用它属于hibernate。我可以在哪里找到它们之间的差异。

2 个答案:

答案 0 :(得分:1)

所有@Id来自javax.persistence,这意味着它来自JPA。 您可以将JPA视为抽象类,而hibernate则是实现。

由于Hibernate也使用这个注释而没有创建具有相同名称的另一个注释(如hibernate和JPA都具有的@Entity和@Table),主要目的是与JPA标准相同。至于在hibernate和JPA中定义的注释,你可以看到每个注释的javadoc。

答案 1 :(得分:0)

我们可以在hibernate

中阅读here
  

每个实体bean都有一个主键,您可以在其上进行注释   带有@Id注释的类。主键可以是单个字段   或多个字段的组合,具体取决于您的表格结构。

JPA中的

here

  

@Id注释将字段标记为主键字段。当一个   主键字段是自动定义的主键值   由ObjectDB注入到该字段中。

所以我猜不同之处在于JPA @Id可能用于字段的组合