これらのアプローチの違いは何ですか?どちらが優れていますか?今まで私は次のようなコードを持っています:
public void delete(Song song) {
session = sessionFactory.getCurrentSession();
session.delete(song);
session.flush();
}
ただし、上記のコードを実行すると、レコードが常に削除されるわけではありません(正確には、id = 1が削除されることはなく、他のIDは常に削除されます)。セッションを開いたままにしておくと、アプリケーションが少し高速化されることを読みました。そのため、セッションオブジェクトを共有しています。私のビジネスオブジェクトは、DIを介してセッションファクトリを取得します。
@Autowired
private SessionFactory sessionFactory;
Session session = null;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}