0
複数の関連オブジェクトを1つのトランザクションに1つずつ保存しています。子オブジェクトを保存するときにはConstraintViolationException
を避けるために探しています。複数の関連するオブジェクトを同じトランザクションで一度に同じトランザクションに保存する
コードは次のようになります。私は間違っていないよ場合
try{
//with given session
session.getTransaction().begin();
session.save(objectA);
objectB.setObjectA(objectA);
//do something with object B before save
session.save(objectB);
if(!objectB.getObjectCSet().isEmpty()){
for(ObjectC objectC:objectB.getObjectCSet){
objectC.setObjectB(objectB);
//do something with object C before saving
session.save(objectC);
}
}
session.getTransaction().commit();
}catch(Exception e){
session.getTransaction().rollback();
}finally{
if(session != null){
session.flush();
session.clear();
session.close();
}
}
私はちょうどカスケードを使用してcascade="save"
の構成でsession.save(objectA);
ような何かを行うことができます。私は休止状態がどのようにカスケードを処理するのかわかりませんが、それが何か類似しているかどうかを知りたいと思います。あなたは@OneToManyを使用してエンティティの関連付けを定義するとき