哪种数据类型可以用于在Hibernate/jpa中创建主键变量?


@Entity
public class MyEntity {
@Id
@Column()
private String prKey;
//....
}

哪个数据类型可以用来在Hibernate/JPA中创建主键变量?

根据hibernate文档:

简单标识符映射到单个基本属性,并使用javax.persistence.Id注释表示。

根据JPA,只有以下类型应该用作标识符属性类型:

  • 任意Java原语类型
  • 任何原始包装类型
  • java.util。日期(TemporalType #日期)
  • java.sql.Date
  • java.math.BigDecimal
  • java.math.BigInteger

超出此列表的标识符属性的任何类型都将不可移植。

Hibernate也支持java.util.UUID作为标识符。

您可以使用java原语或原语包装器来定义您的Id类型。如果您没有任何特殊要求,如组合键等……最简单的解决方案是使用Long作为密钥。

@Id
@GeneratedValue
@Column(name = "ID")
private Long id;

最新更新