[Seasar-user:1074] Re: S2DAO不具合

Taro Kato kato
2004年 10月 5日 (火) 15:12:40 JST


比嘉さん、こんにちわ。グルージェント加藤です。

WHERE句が Wになる件ですが、プライマリキーが無いと見なされて、
あとから削除した結果 4文字削られて "W" になることが
判明しました。これは " AND" 分のためだと思われますが、
プライマリキーが無い場合は例外が発生する方が良いかと思います。

ただ、その議論以前に、プライマリキーは実際にDB上に
あるにもかかわらず起きています。

調査したところスキーマが絡むケースということが分かりました。

まず、前提条件として、DBには、A, B という異なるスキーマがあり
互いに互いのテーブルへの操作権限は持っているという状態です。

それぞれのBeanのTABLEアノテーションにも、
 "A.table1" "B.table2" とスキーマ指定で設定してあります。

この状態で、DBに対してAでログインして使うと、B.table2の
setupAutoUpdateWhere内で、getPrimaryKeySize()がゼロになります。
しかし、Bでログインしただけで、今度はちゃんとプライマリ情報が
取得できています。

JDBCメタ情報を取得する際に、TABLEアノテーションの値がスキーマと
テーブル名がくっついているためにうまくいかないのかなぁと予想
しますが、まだそこは調べていません。

できれば対応していただけると助かります。回避策としては
webappを3つに分けるかj2ee.diconとdao.diconを3種用意するという
ことになるのでしょうかね。
うまく協調動作すると良いですが、後者はちょっと心配です。



[[[[[[[[[[[[[[[[[[[[[[ G l u e g e n t , I n c .
[[[[[[[[[[     [[[[[[[
[[[[[[      [[[[[[[[[[
[[[[      [[[[[[[[[[[[    http://www.gluegent.com/
[[      [[[[[[    [[[[
[[[         [[[[   [[[ System Development Division
[[[[[[[[[[[[[[   [[[[[
[[[[[[[[[[[[   [[[[[[[    T a r o  K a t o
[[[[[[[[[[  [[[[[[[[[[





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