我有三张桌子
客户、关系、状态
在我的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
表中?