1.0.6b4リリースしました。
・Seasar V2.2.7, hsqldb1.7.3.3にライブラリを更新しました。
・beforeCompletion(),afterCompletion()での処理
beforeCompletion() で Session#flush()を呼ぶように修正
afterCompletion() で Session#clear() してから Session#close() を呼ぶように修正
(V2.2.5以降に対応)
・アノテーションなしのDto対応(HibernteのExampleの様な機能)
Daoインターフェースで、アノテーションなし指定で、メソッドの引数がDto1つの場合の処理。
渡されてたDtoのNullでないプロパティを検索条件にして、オブジェクトを検索します。
(nullでないもを検索条件にするので、プリミティブ型は想定していません。)
ダウンロードはこちらから
http://sourceforge.jp/projects/seasar/files/?release_id=14390#14390
S2hibernate.daoのアノテーションなしのDto対応(HibernteのExampleの様な機能)
HibernateのQBE(Query by Example)では、IDのフィールドを検索条件にすることができませんが、このアノテーションなしのDto対応を使うとIDも含めることができます。
(IDを含めて検索条件に出来ることが良いかどうかは、別として。。。)
Daoインターフェースで、アノテーションなし指定で、メソッドの引数がDto1つの場合の処理。
渡されてたDtoのNullでないプロパティを検索条件にして、オブジェクトを検索します。
(nullでないもを検索条件にするので、プリミティブ型は想定していません。)
ドキュメントの追加ができていないのですが、とりあえず
EmployeeDaoEmployeeDtoTest.java
EmployeeDaoSimpleDtoTest.java
EmployeeDaoSearchDtoTest.java
あたりと関連ファイルを見ていただけると助かります。
・daoの例(EmployeeAutoDao.javaから抜粋)
//〜〜 略 〜〜
public interface EmployeeAutoDao {
public Class BEAN = Employee.class;//〜〜 中略 〜〜
//dtoを指定して処理する場合
public List getEmployeeByEmployeeDtoAuto( Employee dto );
}
・EmployeeAutoDaoSimpleDtoClientのMainから抜粋
//〜〜 略 〜〜
EmployeeAutoDao dao = (EmployeeAutoDao) container
.getComponent(EmployeeAutoDao.class);/* 手順2 */
Employee emp = new Employee();emp.setJob( "MANAGER" );
emp.setDeptno( new Integer(20) );
List ret = dao.getEmployeeByEmployeeDtoAuto(emp);
System.out.println("RET:" + ( (Employee)ret.get(0) ).getEname() );/* 手順3 */
//〜〜 略 〜〜