JPAを使用してレコードを更新するためのベストプラクティスは何でしょうか?現在、独自のパターンを考案していますが、それがベストプラクティスではないのではないかと思います。私がしていることは、基本的にレコードがデータベースにあるかどうかを確認することです。レコードが見つからない場合は、enityManager.persist(object<T>)
メソッドを呼び出します。存在する場合は、entityManager.Merge(Object<T>)
メソッドを呼び出します。
私が尋ねる理由は、mergeメソッドがレコードがデータベースにすでに存在するかどうかを確認し、データベースに存在しない場合は追加に進むことを発見したためです。必要な変更。また、getTransaction()。begin()とgetTransaction.commit()でマージ呼び出しをネストする必要がありますか?これが私がこれまでに持っているものです...
try{
launchRet = emf.find(QuickLaunch.class, launch.getQuickLaunchId());
if(launchRet!=null){
launchRet = emf.merge(launch);
}
else{
emf.getTransaction().begin();
emf.persist(launch);
emf.getTransaction().commit();
}
}