私は小さな個人的なプロジェクトで Hibernate と Spring を使用しています。さて、この分野ではまだ初心者なので、取引に関するいくつかの基本的な質問をしたいと思います。
トランザクション マネージャーを宣言し、DAO クラスに @Transactional(propagation = Propagation.REQUIRED, readOnly = false) として注釈を付ける必要があるようです。そうしないと、奇妙な例外が発生するか、エンティティがデータベースに保存されません。実際にトランザクションを使用する必要はありますか? それらを使用せずにデータベースにデータを保存することはできませんか (MySQL ISAM テーブルはトランザクションをサポートしていないと思いました)、どのように使用しますか?
@Transactional 属性を配置するのに最適な場所はどこですか? 現在、私のジェネリック HibernateDAO スーパークラスで宣言されており、おそらく最も深いレベルです。そういうところはあまり向いていないと思います。しかし、それを上に移動すると、Spring MVC コントローラーに配置することになり、これは間違いなく不適切な場所でもあります。これまでのところ、他のサービス層はありません。データベースから単語と定義を保存して提供すること以外は何もしていないからです。
どうもありがとう