私は3つのテーブルを持っています
クライアント、関係、ステータス
私の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());
relationIdDBに行かずに取得して、そのIDをClientテーブルに保存するだけですか?