ひがやすを技術ブログ

電通国際情報サービスのプログラマ

S2Dao, S2JDBC

S2Daoは、O/Rマッピング(ORM)の部分とDAO(SQLの自動・手動生成)の部分に
分かれるのですが、そのうちORMの部分はS2JDBCに組み込まれます。
S2Daoの機能としてアナウンスしていたフィールドメタデータは、
S2JDBCレベルで利用可能だということです。
これまでは、プロパティ名とカラム名が異なる場合は、
カラム名に別名をつけてプロパティ名とあわせるという
方法をとってましたが、これがメタデータでいけるようになります。


public static final String employeeName_COLUMN = "ename";

public String getEmployeeName() {
return employeeName_;
}
public void setEmployeeName(String employeeName) {
employeeName_ = employeeName;
}

以前のS2JDBCではカラム名に_が入っていた場合は、削除するという処理が
入っていたのですが、この辺の絡みでなくなる予定(MapもDataSetも)です。


N:1の関連もS2JDBCレベルでサポートされます。

public static final int dept_RELNO = 0;
public static final String dept_RELKEYS = "deptno";

public Dept getDept() {
return dept_;
}
public void setDept(Dept dept) {
dept_ = dept;
}

このようなBeanの定義の場合

SELECT emp.*, dname_0, loc_0 FROM emp LEFT OUTER JOIN dept
on emp.deptno = dept.deptno
のようなSQL文を発行すると自動的にdeptのリレーションが解決されます。
カラム名_の後が関連番号(RELNO)でこのカラムがどのEntityに所属する
のかを表しています。