s2jsf-example-s2hibernateV1.1.0リリース
S2JSFExampleV1.0.3のS2DaoをS2hibernateV1.1.0に差し替えた版です。
次のURLからダウンロードできます。
http://sourceforge.jp/projects/seasar/files/?release_id=15272#15272
このサンプルは、Hibernate2,Hibernate3両方の環境で動作します。
また、両環境の設定ファイル、マッピングファイル、diconファイルがあるので、
examples/jsf/dicon/alldao.diconの次の1行を修正だけで、切り替えることができます。
== Hibernate2を使う場合==
== Hibernate3を使う場合 ==
◆コード、設定ファイルの修正内容
■hibernateの設定ファイルを追加
・hibernate2用
/WEB-INF/src/examples/jsf/dto/EmployeeDto.hbm.xml
/WEB-INF/src/examples/jsf/dto/DepartmentDto.hbm.xml
/WEB-INF/src/hibernate.cfg.xml
・hibernate3用
/WEB-INF/src/examples/jsf/dto/EmployeeDto3.hbm.xml
/WEB-INF/src/examples/jsf/dto/DepartmentDto3.hbm.xml
/WEB-INF/src/hibernate3.cfg.xml
■diconファイルの差し替え
/WEB-INF/src/dao.dicon
/WEB-INF/src/examples/jsf/dicon/alldao.dicon
■コードの修正
◇examples.jsf.dao.DepartmentDtoDao
修正前: public String getDname_ARGS = "depno";
修正後: public String getDname_ARGS = "deptno";
◇examples.jsf.dao.EmployeeDtoDao
・PROPERTYアノテーションをつける
public String searchEmployeeDtoList_PROPERTY = "empno,ename,job,mgr,hiredate >= fromHiredate,hiredate <= toHiredate,sal >= fromSal,sal <= toSal,deptno";
public List searchEmployeeDtoList(EmployeeSearchDto dto);
◇EmployeeDtoDaoImplを追加
次のメソッドがcountを使っています。
examples.jsf.dao.EmployeeDtoDao#getSearchCount()
しかし、HibernateのCriteriaでcountを取るには、修正が必要になってくるので、とりあえず、
examples.jsf.dao.EmployeeDtoDaoImpl
というabstractクラスを作って、次の様に上書きしました。
public int getSearchCount(EmployeeSearchDto dto) {
return searchEmployeeDtoList(dto).size();
}
※examples/jsf/dicon/allhibernatedao.dicon の
を削除して、今作ったEmployeeDtoDaoImplと差し替え
◇EmployeeDto.javaへコード追加
== 追加内容 ==
private DepartmentDto departmentDto;
public DepartmentDto getDepartmentDto() {
return departmentDto;
}
public void setDepartmentDto(DepartmentDto departmentDto) {
this.departmentDto = departmentDto ;
this.dname = departmentDto.getDname();
}