varchar主键的Hibernate映射

时间:2017-03-31 05:26:25

标签: hibernate

我在表中将主键设置为varchar。但是当我试图在休眠状态下映射时,我得到如下错误:

Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)

Hibernate映射:

@Id
@Column(name="LOGIN_ID",columnDefinition="VARCHAR")
private String id;

如何在hibernate中映射varchar主键?

2 个答案:

答案 0 :(得分:0)

你能尝试使用

吗?
@Id
@Column(name = "LOGIN_ID", nullable = false, columnDefinition="VARCHAR(64)")

还添加一个构造函数来初始化上面的实例变量以及默认构造函数。

答案 1 :(得分:0)

你可以使用uuid策略,它会在你的数据库中生成uuid作为字符串id,你不需要设置id,hibernate会照顾它。

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid" )
private String id;