[Seasar-user:17272] Re: [Kuina-Dao] JpqlUtil#toDefaultIdentificationVariable の仕様

Hidenoshin Yoshida [E-MAIL ADDRESS DELETED]
2009年 4月 18日 (土) 14:11:03 JST


吉田(da-yoshi)です。

EclipseLink関係についてのみ調査しましたが
member はEclipseLink個別ではなくJPQLの予約語ですので
個人的には、JPQL中には使わないというのが第一の対処法ではないかと思います。

Tomoyuki KANO さんは書きました:
> 加納と申します
>
> Kuina-Dao においてエンティティのクラス名が Member の場合、
> たとえば List<Member> findAll() を呼び出すと
>
> JPQL:
> select member from Member AS member
> となりますが
> eclipselink で確認したところ parse errorとなってしまします。
> member が予約語として扱われているためだと思いますが、
> 他の JPA 実装は試していません。
>
> # member なんて如何にもエンティティ名としてありそうなものを
> # 予約語扱いされるのも厭らしい。
> # それとも Rails に宗旨変えして members にしろとか?
>
> eclipselink の場合
> select _member from Member AS _member
> であれば問題が起きないことは確認しました。
>
> 回避策として @Entity(name="_member") とかすればいいのですが、
>
> select _member from _member AS _member
> となってしまうので、ログだけの問題ですが気持ちよくありません。
> いちいち問題となるエンティティ名に回避のための @Entity(name="xxx")を
> 書くことも、エンティティをソース自動生成などで作っている場合に
> 面倒かなとも思います。
>
> そこでですが、
> JpqlUtil#toDefaultIdentificationVariable が返す文字列に、常に "_" を
> プリフィックスに付加するとしても実害が無いように思うのですが
> いかがでしょうか?
>
> よろしくご検討ください。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>   

吉田秀之進
[E-MAIL ADDRESS DELETED]


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