[Seasar-user:2411] [S2Dao] 関連先オブジェクトのプロパティをバインドしたい

Hirotaka HONMA manholex
2005年 7月 22日 (金) 10:20:44 JST


本間です。

Entityクラスをdtoとしてdto.getAnother().getHogeValue()
した値をPreparedStatementへバインドしたいと思い、SQL文に

    /*IF dto.another.hogeValue != null*/
        AND ANOTHER_TABLE.HOGE_VALUE = /*dto.another.hogeValue*/'hoge'
    /*END*/

と書いたのですが、下記例外が返されてしまいました。
# dto.getAnother()した値がバインドされているような?

org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外が発生しました。理由はjava.sql.SQLException: 列の型が無効です。
    at org.seasar.extension.jdbc.impl.BasicHandler.bindArgs(BasicHandler.java:95)
    at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:121)
    (以下略)

dtoの関連先オブジェクトの値をバインドする方法はあるのでしょうか?
アドバイス頂けましたら幸いです。

# Daoの引数をdto, anotherとすれば可能なのですが、
# その方法ではSQL文(少なくともQUERYアノテーション)を手で書く必要が
# 発生するため、避けたく思っています。
## 1.QUERYアノテーションの数が膨大になりそう
## 2.QUERYアノテーションの内容は一定のルールに従うことになる
## という2点の理由から、共通部品(S2Daoへのラッパもしくは
## DaoMetaDataImplを継承して差し替え)で解決を考えています。

よろしくお願いいたします。
-- 
Hirotaka HONMA <[E-MAIL ADDRESS DELETED]>




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