我正在寻找在同一对象中重用生成的主键值的解决方案。我的实体对象代码如下所示,
@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值。这可能吗? 感谢
答案 0 :(得分:-1)
你到底想干什么?您是否希望在保存实体的新实例时使用相同的生成器,是否尝试将两个字段映射到同一列,或者您是否尝试将ownerId的默认值与首次保存时的id相同一个新的实体实例。
对于最后一个,我建议不要太复杂(如果这不会导致并发问题):
session.saveOrUpdate(yourNewObject);
session.merge(yourNewObject);
yourNewObject.setOwnerId(youNewObject.getId());
session.saveOrUpdate(youNewObject);