[seasar-dev:384] Re: [s2dao]N:1 マッピングでRELNOを指定する理由

上原 慶三 keizou @ jd6.so-net.ne.jp
2006年 5月 25日 (木) 04:57:57 JST


上原です。

Yasuo Higa wrote:
> ひがです。
> 
>> ほんまです。
>>
>> アイディアその1です。
>>
>> ASでのエイリアス名を"テーブル名.列名"にするのはどうでしょう?
>> # 今までは"列名_テーブルのRELNO"
>> これなら手書きSQLでも問題なさそうですし。
>>
> ASでテーブル名.列名で名前を付けても、列名しか認識しない
> RDBMSがいたような記憶があります。
> 誰だっけな。
> 既に修正されている or 勘違いなら上記に賛成です。

ASでのエイリアス名を"テーブル名_列名"にするのはどうでしょうか?

 それとも、デフォルトでは連番を振るようにして、
RELNOを指定することもできるようにするとか。
互換性の問題を考えるとこちらのほうがいいような気もします。

いま1.1で1:N、N:Nマッピングを実装中ですか

N:1の場合
public static RelationType employee_RELTYPE = RelationType.belongTo;
public Employee getEmployee();

1:Nの場合
public static RelationType employees_RELTYPE = RelationType.hasMany;
public Employee[] getEmployees();

/* 返り値がListの場合BEANアノテーションでBeanを指定する*/
public static RelationType employees_RELTYPE = RelationType.hasMany;
public static RelationType employees_BEAN = Employee.class;
public List getEmployees();
/*Joinするキーを指定する場合*/
public static RelationType employees_RELTYPE = RelationType.hasMany;
public static String employees_RELKEY = "deptno:deptno";
public Employee[] getEmployees();

1:Nの場合
public static RelationType employees_RELTYPE = RelationType.hasMany;
public static String employees_JOINTABLE = "dept_emp_relation";
public Employee[] getEmployees();

/*Joinするキーを指定する場合*/
public static RelationType employees_RELTYPE = RelationType.hasMany;
public static String employees_JOINTABLE = "dept_emp_relation";
public static String employees_RELKEY = "deptno:deptno:empno:empno";
public Employee[] getEmployees();

こんなかんじで行こうと思うのですがどうでしょう。
-- 
---
上原 慶三<keizou @ jd6.so-net.ne.jp>


Seasar-dev メーリングリストの案内