[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 メーリングリストの案内