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