如何在同一实体的不同列中分配生成的主键值

时间:2014-03-04 12:35:00

标签: hibernate java-ee jpa

我正在寻找在同一对象中重用生成的主键值的解决方案。我的实体对象代码如下所示,

@Id
@GeneratedValue(generator = "primaryKeyGenerator")
@GenericGenerator(name = "primaryKeyGenerator", strategy = "com.id.generator.CustomGenerator")
@Column(name="id")
private Long id;

@Column(name="version")
private int version=0;

@Column(name="object_tuple_id")
private Long objectTypleId;


@Column(name="owner_id")
private Long ownerId;

我想在ownerId对象中使用生成的id值。这可能吗? 感谢

1 个答案:

答案 0 :(得分:-1)

你到底想干什么?您是否希望在保存实体的新实例时使用相同的生成器,是否尝试将两个字段映射到同一列,或者您是否尝试将ownerId的默认值与首次保存时的id相同一个新的实体实例。

对于最后一个,我建议不要太复杂(如果这不会导致并发问题):

session.saveOrUpdate(yourNewObject);
session.merge(yourNewObject);
yourNewObject.setOwnerId(youNewObject.getId());
session.saveOrUpdate(youNewObject);