..
前項の例を参照すると、我々は、エンティティの車にDAOを作成する方法を参照してください。
ロード、保存、更新および削除:すべてのcreaimoすなわちDAO、に基づいてメソッドを持つインタフェースの最初の。
it.mrwebmaster.hibernate.daoパッケージ;
it.mrwebmaster.hibernate.Carの輸入;
{パブリックインターフェイスCarDao
公共駐車場の負荷(整数のID);
公共駐車場(車の車を)保存してください。
公共駐車場(車の車)を更新。
します。public void削除(車の車);
}
実装の作成で作成されたインタフェースのパス:
it.mrwebmaster.hibernate.daoパッケージ;
it.mrwebmaster.hibernate.Carの輸入;
javax.persistence.EntityManagerの輸入;
javax.persistence.PersistenceContextの輸入;
org.springframework.transaction.annotation.Transactional輸入;
@トランザクショナル
CarDaoImpl {publicクラスがCarDaoを実装
@ PersistenceContextを(ユニット名="缶")
プライベートEntityManagerのEM。
@オーバーライド
します。public void削除(車の車){
em.remove(char型);
}
@オーバーライド
@トランザクショナル(READONLY =真)
公共駐車場の負荷(整数ID){
em.findを(Car.class、id)を返します。
}
@オーバーライド
公共駐車場(車の車を){保存
em.persist(char型);
車を返す。
}
@オーバーライド
アップデート公共カー(自動車カー){
em.mergeリターン(char型);
}
公共ボイドsetEm(EntityManagerのEM){
this.em = EM;
}
getEm公共のEntityManager(){
pを返します。
}
}
そして最後に"applicationContext.xmlをに:
< - !CAR DAO - > <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />
DAOのnostを実装するために見られるように我々は、IoC のアノテーションを@ PersistenceContextを使用することによって"私達から直接注入されるEntityManagerを、必要。
各メソッドの実装は些細な、単純作業のall'EntityManagerを委任する。
トランザクション管理については、@ Transactionalアノテーションを使用することを選択しました。
これが私たちのDAOのインスタンスを作成するために、Springはその仕事メソッドの呼び出し前にトランザクションを開いたり閉じたりするとすぐに自分自身がコミットまたはの場合にロールバックを行う方法から"終了後にプロキシを、使用することが可能エラー。
(注)は、最終的に、そうすることで ReadOnly nell'annotation loadメソッド用のトランザクション@の使用は、転移を読み取り専用に作成しています。
このトランザクション管理は、それだけで私たちのapplicazionContext.xmlに追加する有効にするために、AOPを使用して行われます。
<! - トランザクション管理 - > <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </ビーン> <tx:annotation-drivenのtransaction-manager="transactionManager" />
| |
Linuxの(コース)
オープンソースシステムへの完全なガイド。 49€から。 |
| |
PHP(コース)
動的なWebサイトを作成するためのフルコース。 49€から。 |
| |
RubyとRuby on Rails(コース)
RubyとRoRのと、ソフトウェアやWebアプリケーションを作成します。 39€から。 |