如何在JPA / Hibernate中将@Id与字符串类型一起使用?
我有一个包含字符串类型主键的实体。该实体模型如下:
@Entitypublic class MyEntity {
@Id
@Column(name="PR_KEY", unique=true)
private String prKey;
....
....
}
但是我面临说TypeMismatch的问题。
org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.String, got class java.lang.Long
回答:
如果您未指定ID生成策略,则Hibernate将使用GenerationType.AUTO
。这将导致
AUTO-标识列,序列或表,具体取决于基础数据库。
如果你看看这里,你会发现所有的生成类型的IDSlong
,short
或int
,不是类型String
。
假设您要使用String
UUID作为ID,则可以使用
@Id@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "PR_KEY")
private String prKey;
以上是 如何在JPA / Hibernate中将@Id与字符串类型一起使用? 的全部内容, 来源链接: utcz.com/qa/402265.html