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

Hibernate 如何在同一实体的不同列中分配生成的主键值,hibernate,jakarta-ee,jpa,Hibernate,Jakarta Ee,Jpa,我正在寻找在同一个对象中重用生成的主键值的解决方案。我的实体对象代码如下所示 @Id @GeneratedValue(generator = "primaryKeyGenerator") @GenericGenerator(name = "primaryKeyGenerator", strategy = "com.id.generator.CustomGenerator") @Column(name="id") private Long id; @Column(name="version")

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

@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值。这可能吗?
谢谢

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

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

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