我有一个包含字符串类型主键的实体。该实体模型如下:
@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。这将导致
GenerationType.AUTO
AUTO-标识列,序列或表,具体取决于基础数据库。
如果你看看这里,你会发现所有的生成类型的IDSlong,short或int,不是类型String。
long
short
int
String
假设您要使用StringUUID作为ID,则可以使用
@Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid2") @Column(name = "PR_KEY") private String prKey;