Foo
いくつかの一意の制約を持つ sql テーブルにマップするentityがあります。そのため、保存にFoo
失敗する場合があります。私はFooDao
保存するために使用していますFoo
:
@Repository
public class FooDao
{
@Autowired
private SessionFactory sessionFactory;
@Transactional
@Override
public void add(Foo item) {
sessionFactory.save(item);
}
}
メソッドを呼び出すとFooDao#add(Foo)
、次の 2 つの理由で失敗する可能性があります。一意の制約違反 (この場合、問題の処理方法を知っています) またはその他の問題 (この場合、おそらく例外を伝播する必要があります) のいずれかです。この 2 つの状況をどのように区別すればよいでしょうか。
メソッドfind(Foo item)
を追加FooDao
して、追加しようとしていたアイテムのようなものがデータベースであるかどうかを確認できます。しかし、これにはデータベースからの追加の選択が必要であり、私はこれについて少し心配しています.