Kai*_*las 30 java hibernate jpa
我有一个实体,其中包含string类型的主键.该实体模型如下:
@Entity
public class MyEntity {
@Id
@Column(name="PR_KEY", unique=true)
private String prKey;
....
....
}
Run Code Online (Sandbox Code Playgroud)
但我面临的问题是TypeMismatch.
org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.String, got class java.lang.Long
Run Code Online (Sandbox Code Playgroud)
Sot*_*lis 38
如果你没有指定id生成策略,Hibernate将使用GenerationType.AUTO.这将导致任何
AUTO - 标识列,序列或表,具体取决于底层数据库.
如果你看这里,你会注意到所有那些生成类型的ID long,short或者int不是类型String.
假设你想要一个StringUUID作为id,你可以使用
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "PR_KEY")
private String prKey;
Run Code Online (Sandbox Code Playgroud)