Spring MVC を使用して Web アプリを開発し、永続化のために休止状態にしています。GenericDao に SessionFactory メンバー属性がある私の DAO を考えると:
@Repository
public class Dao extends GenericDao {
public void save(Object o) {
getCurrentSession().save(o);
}
}
そして Service クラス
@Service
public class MyService {
@Autowired
Dao dao;
@Transactional
public void save(Object o) {
dao.save(o);
}
}
永続化例外が発生した場合 (制約、重複など)、ユーザーに通知したいと考えています。私の知る限り、@Transactional
注釈は例外が発生してトランザクションマネージャーがロールバックした場合にのみ機能するため、そのメソッドで例外を処理するべきではありません。DAO で発生した例外をどこでどのようにキャッチして、直接または独自の例外にラップしてユーザーに提示できるようにする必要がありますか?
spring のトランザクションサポートを利用したい。