S2JDBCのテーブル結合

S2JDBCでテーブル結合を試してみた!!

内部結合(inner join)

EMP
id
empNo
empName
mrgId
sal
deptId
versionNo



DEPT
id
deptNo
deptName
deptId
versionNo
EMP.deptIdは、DEPT.idの外部キーである。


EMPとDEPTを1対1で結合

entityのEmpクラスを下記のようにする。

@Entity
public class Emp {
    @OneToOne
    public Dept dept;
}



Serviceクラス(daoに近い)

public class EmpService extends AbstractService<Emp> {
    /**
     * テーブル結合
     * @return
     */
    public List<Emp> selectJoin() {
	return select().innerJoin("dept").getResultList();
    }
}



Actionクラス

public class TestAction {
    /**
     * テスト テーブル結合
     * @return
     */
    @Execute(validator = false)
    public String join(){
    	empItems = empService.selectJoin();
    	return "listJoin.jsp";
    }
}

【参考サイト】
Seasar2 - S2JDBC - JdbcManager - SQL自動生成による操作
http://wiki.paulownia.jp/java/s2jdbc