[英]Hibernate String Primary Key with Annotation
我正在尝试使用主键是字符串的注释创建一个权限类。 我将在插入时手动分配它们。 因此不需要休眠为其生成值。 我正在尝试做这样的事情:
@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
但它抛出该异常:
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned
如何使用注释配置String
主键?
由于roleName
不是自动生成的,因此您不应该使用@GeneratedValue
对其进行注释:
@Id
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;
只需使用@Id
批注,该批注可让您定义哪个属性是您实体的标识符。 您不需要使用@GeneratedValue
批注,因为我认为您不希望休眠为您生成此属性。
即使在基于XML配置的方法中,它也是一个可选标记,可以跳过。
@Id
@Column(name = "USER_ID",unique=true,columnDefinition="VARCHAR(64)")
private String userId;
在保存或更新过程中,我用列注释表示columnDefinition类型,从而为我工作。
你可以这样输入,假设职位是那个薪水实体的主键,
@Id
@Column (name = "POSITION", nullable = false)
private String position;
然后,它会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.