[Seasar-user:2248] s2jsf-example の s2hibernateV1.1.0版サンプルをリリース
kenichi_okazaki
okazaki
2005年 6月 23日 (木) 23:25:06 JST
おかざきです。
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を使う場合==
<include path="s2Hibernate.dicon"/>
== Hibernate3を使う場合 ==
<include path="s2Hibernate3.dicon"/>
◆コード、設定ファイル等の修正内容
■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
の
<component class="examples.jsf.dao.EmployeeDtoDao">
を削除して、今作ったEmployeeDtoDaoImplと差し替え
<component class="examples.jsf.dao.EmployeeDtoDaoImpl">
◇EmployeeDto.javaへコード追加
== 追加内容 開始==
private DepartmentDto departmentDto;
public DepartmentDto getDepartmentDto() {
return departmentDto;
}
public void setDepartmentDto(DepartmentDto departmentDto) {
this.departmentDto = departmentDto ;
this.dname = departmentDto.getDname();
}
== 追加内容 終了 ==
以上
Seasar-user メーリングリストの案内