マッピングファイルがなくても動作する機能の記述方法イメージ

うーん、確かにS2Daoと機能がかぶってしまって、意味なしですね。
リリースせずに、個人的に使うだけになるかも。まぁ、その前に実装始めないとできるかどうか、まだ調査しきれてないので。
とりあえず、イメージしていた内容を書いてみます。。。


次の2つのパターンで書いてみます。
・すべての永続化するクラスで、マッピングファイルを指定するパターン(今のS2Hibernateを使った場合)
マッピングファイルで指定する永続クラスと、アノテーションマッピングさせる永続クラスを併用するパターン(追加しようと思っている機能)


■すべての永続化するクラスで、マッピングファイルを指定するパターン(今のS2Hibernateを使った場合)
・永続クラスEmployee.java


package examples.hibernate.entity;

import java.io.Serializable;

public class Employee implements Serializable {

private long empno;
private String ename;
private String job;
private short deptno;

public Employee() {}
public Employee(long empno) { this.empno = empno; }

public long getEmpno() { return this.empno; }
public void setEmpno(long empno) { this.empno = empno; }

public java.lang.String getEname() { return this.ename; }
public void setEname(java.lang.String ename) { this.ename = ename; }

public java.lang.String getJob() { return this.job; }
public void setJob(java.lang.String job) { this.job = job; }

public short getDeptno() { return this.deptno; }
public void setDeptno(short deptno) { this.deptno = deptno; }

}

・Employee.javaとEMPテーブルののマッピングファイル











hibernate.cfg.xmlhibernateのpropertyの設定とEmployee.hbm.xmlの読み込みを行っているファイル)





net.sf.hibernate.dialect.HSQLDialect
true




・diconファイル







マッピングファイルで指定する永続クラスと、アノテーションマッピングさせる永続クラスを併用するパターン(追加しようと思っている機能)
次のように、javaBeansにテーブル名と、id、generatorなどを定数アノテーションで指定して、
diconファイルのS2SessionFactoryの部分で、アノテーションを追加しているjavaBeansと、手動(またはツールで作成)で記述したマッピングファイルを指定する。

・永続クラスEmployee.java


package examples.hibernate.entity;

import java.io.Serializable;

public class Employee implements Serializable {

public static final String TABLE = "EMP"; //マッピングさせるテーブル名の指定
public static final String empno_ID = "assigned"; //プライマリーキーと、generator の指定

private long empno;
private String ename;
private String job;
private short deptno;

public Employee() {}
public Employee(long empno) { this.empno = empno; }

public long getEmpno() { return this.empno; }
public void setEmpno(long empno) { this.empno = empno; }

public java.lang.String getEname() { return this.ename; }
public void setEname(java.lang.String ename) { this.ename = ename; }

public java.lang.String getJob() { return this.job; }
public void setJob(java.lang.String job) { this.job = job; }

public short getDeptno() { return this.deptno; }
public void setDeptno(short deptno) { this.deptno = deptno; }

}

・diconファイル





"dialect"
"net.sf.hibernate.dialect.HSQLDialect"


"show_sql"
"true"


"examples.hibernate.entity.Employee"