带注释的java Hibernate字符串主键
我试图创建一个带有注释的特权类,其主键是字符串。我将在插入时手动分配它们。因此,hibernate无需为其生成值。我正在尝试这样做:
@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
但它抛出了一个例外:
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned
如何配置带有注释的String
主键
# 1 楼答案
由于
roleName
不是自动生成的,因此不应使用@GeneratedValue
对其进行注释:# 2 楼答案
只需使用
@Id
注释,它可以定义哪个属性是实体的标识符。您不需要使用@GeneratedValue
注释,因为我认为您不希望hibernate为您生成这个属性即使在基于XML配置的方法中,它也是一个可选标记,可以跳过。
# 3 楼答案
您可以这样输入,假设职位是该薪资实体的主键
那就行了