[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 メーリングリストの案内