在hibernate映射

时间:2018-01-22 10:17:12

标签: hibernate

我有2个表 - Request和SubRequest。他们都需要一对一的映射。在SubRequest表中,我需要在同一列(即RequestID)上具有主键和外键。它很容易在DB中完成。我的应用程序使用hibernate。所以在hibernate映射文件中我需要做同样的事情。此外,还要求此密钥(RequestId)必须是varchar并由应用程序生成,而不是由DB自动生成。我尝试从以下方面做到 - http://www.codejava.net/frameworks/hibernate/hibernate-one-to-one-with-primary-key-xml-mapping-example
http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example/
但所有这些都具有整数和自动生成的ID。 我无法使它适用于RequestID,它是一个String。

是否可以在休眠状态下执行此操作?

1 个答案:

答案 0 :(得分:0)

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

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

或使用@Id而不使用@GeneratedValue

@Id
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;