[Seasar-user:19560] Re: 【S2Dao】SELECT結果がEntityに入らないケースがある
Hiroyuki Oonaka
[E-MAIL ADDRESS DELETED]
2010年 3月 26日 (金) 17:03:52 JST
大中(せと)です。
On Fri, 26 Mar 2010 14:29:17 +0900
"Hidemasa Aoki" <[E-MAIL ADDRESS DELETED]> wrote:
> 問題を簡潔に述べると、SELECTでは正しく取得できているのに、EntityのhomeKaddr1
> などに値がセットされない、ということです。
> しかも、CardEntryDaoでは問題ないのに、CardEntryPreprintDaoでは現象が発生しま
> す。
> いったい何が違うのか、さっぱりわかりません。
> SELECTの結果とEntityのプロパティのマッピングに、何か注意すべき点があるので
> しょうか?
> (たとえば、項目名に_1などがあると、気分次第で正しく動かないこともある、と
> か。)
結論から申し上げますと、Daoの@S2Daoアノテーションと違う
クラス(DTO)を返しているメソッドでは、このような現象が起こります。
これは、アノテーションで指定されているクラスでは、
テーブルのカラム名(HOME_KADDR_1)→プロパティ名(homeKaddr1)
という変換を行うのに対し、
アノテーションで指定されていないクラス(DTO)では、
プロパティ名(おそらくhomeKaddr1)→カラム名(HOME_KADDR1)
^^^^^^^^^^^
という変換を行うためです。
おそらく問題が起きていないCardEntryDaoでは、@S2Daoアノテーションで
CardEntryListDtoクラスが指定されているのでないでしょうか。
> 現在は暫定対応(確実に動くDaoのほうで再取得)して逃げているので問題ないので
> すが、やはりあるべき姿で実装したいです。
_の後に数字がつくプロパティに@Columnアノテーションを指定して、
そこで、テーブルのカラム名をしてください。
--
大中浩行(せとあずさ)
[E-MAIL ADDRESS DELETED]
http://d.hatena.ne.jp/setoazusa/
Seasar-user メーリングリストの案内