[Seasar-user:1451] Re: 障害報告:S2Dao 1.0.17のN:1マッピング障害
Yasuo Higa
higa
2005年 1月 18日 (火) 13:13:39 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:1450]障害報告:S2Dao 1.0.17のN:1マッピング障害" において、
"Tsutomu Yano <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> 矢野と申します。よろしくお願いします。
>
> S2Dao 1.0.17と、DBとしてPostgreSQL 7.4.5を使った環境で、自動生成されるSQLの関係で
> SQLRuntimeExceptionが発生しましたので報告します。
>
> N:1リレーションの定義をする際に、N側と1側のリレーションキーが同じ名前の場合、
> 自動生成されるSQLに(少なくともPostgreSQLにとっては)問題があります。
> ここでUserDaoにて、プライマリーキーにてUserオブジェクトを取得しようとすると、
> 下記のようなイメージのSQLが生成されます。
>
> SELECT USER.name, userinfo.info AS userinfo_0,
> FROM USER
> LEFT OUTER JOIN USERINFO userinfo ON USER.user_id = USERINFO.user_id
> WHERE user_id = '正しいキー文字列'; -- ここ
自動生成されるSQL文には、下記のようにテーブル名は付加されるようになってます。
SELECT EMP.empno, EMP.ename, EMP.job, EMP.mgr, EMP.hiredate,
EMP.sal, EMP.comm, EMP.deptno, department.deptno AS deptno_0,
department.dname AS dname_0, department.loc AS loc_0,
department.versionNo AS versionNo_0
FROM EMP LEFT OUTER JOIN DEPT department ON EMP.deptno = department.deptno
WHERE EMP.deptno = 20
バージョンは1.0.17です。
examples.daoのサンプルがこうなってます。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
Seasar-user メーリングリストの案内