我有三张桌子
客户、关系、状态
在我的Client实体内部,我有
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "relationId")
private Relation relationId;
和
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "statusId")
private Status statusId;
关系和状态实体只有 getter/setter,没有关系。
在这里,我正在保存/更新我的客户,并且我也想保存/创建这个关系
Session session = sessionFactory.openSession();
try
{
Transaction tr = session.beginTransaction();
updatedClient = (Client) session.get(Client.class, id);
updatedClient.setClientPostCode(client.getClientPostCode());
updatedClient.setRelationId(client.getRelationId());
session.saveOrUpdate(client.getRelationId());
session.update(updatedClient);
tr.commit();
}
这段代码没有异常,Client成功保存,Relation成功创建,但relationID创建的没有分配给relationID客户表中的列。
使用此代码创建的关系具有relationID(primarykey: 3) 但在 中的relationId列中Client,正在保存的值始终是在这种情况下0实际应该存在的值。3
知道我做错了什么吗?
是不是有可能得到relationId这条线之后?
session.saveOrUpdate(client.getRelationId());
这样我就可以在relationId不去数据库的情况下获得该 ID 并将该 ID 保存在我的Client表中?