[Seasar-user:13062] jdbcManagerのwhereメソッドにDBカラム名を入れることは可能でしょうか?

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 2月 25日 (月) 23:00:46 JST


関修康です。

S2Dao 1.0.47とS2Container 2.4.18-rc4のjdbcManagerを共存させて
開発していたのですが、.forUpdate()を利用したいために S2Container 2.4.23 に変更しました。

その際、以下のコードが動作しなくなってしまい困っています、
原因まではだいたい分かっているのですが確認のためにメールをお送りさせて頂きました。

■Aパターン 動作不可(S2Container 2.4.18-rc4では動作していました)
List<EmployeeEntity> entities =
 jdbcManager
  .from(EmployeeEntity.class)
  .where(new SimpleWhere().eq(EmployeeEntity.deptCode_Column, deptCode)) // ← カラム名では実行不可
  .orderBy(EmployeeEntity.employeeName_Column)
  .getResultList();

■Bパターン 動作可能
List<EmployeeEntity> entities =
 jdbcManager
  .from(EmployeeEntity.class)
  .where(new SimpleWhere().eq("deptCode", deptCode)) // ←プロパティ名で実行可
  .orderBy(EmployeeEntity.employeeName_Column)
  .getResultList();

原因:whereメソッドの引数にDBのカラム名を指定しているため

EmployeeEntity.deptCode_Column の設定はS2Daoのためだったのですが、
私的には、Aの方がカラム名をeclipseで引く事ができ、.netのDatasetぽくて好きでした。

しかしながら、今後はjdbcManagerのwhere文にはEntityの
プロパティ名を入れる場合しかサポートされないのでしょうか?

それとも動作可能で有るはずなのに何か設定のレベルで間違っているのでしょうか?

ご助言頂ければと思いお聞き致します。宜しくお願い致します。




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