如何在JPA / Hibernate中将@Id与字符串类型一起使用?

我有一个包含字符串类型主键的实体。该实体模型如下:

@Entity

public 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-标识列,序列或表,具体取决于基础数据库。

如果你看看这里,你会发现所有的生成类型的IDSlongshortint,不是类型String

假设您要使用StringUUID作为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

回到顶部