繁体   English   中英

带注释的休眠字符串主键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM