- PR -

O/Rマッピングツールcayenneについて

1
投稿者投稿内容
kinte
会議室デビュー日: 2004/09/28
投稿数: 1
投稿日時: 2004-09-28 13:06
はじめまして

  cayenneに対して外部からSQLを指定したアクセスを試みています。
  以下実行しているメソッドの抜粋

public List query(Class table,String ql) {

  GenericSelectQuery query1 = new SQLTemplate(table,ql,true);
  query1.setLoggingLevel(org.apache.log4j.Level.WARN);

  List list = ctx.performQuery(query1);

 return list;

  }

 String ql に
  "SELECT STS1 FROM BATCH_PROCESS where publish_month='2004/01' "

以上のSQLを設定してcayenneに対して実行依頼すると結果は正常ですが
 getメソッドを発行して中身を確認してもnullしか入っていません。

以下発行したSQLのログ内容です。

WARN QueryLogger: --- will run 1 query.
WARN QueryLogger: SELECT STS1 FROM BATCH_PROCESS where publish_month='2004/01'
WARN QueryLogger: === returned 1 row. - took 180 ms.

 上記のメソッド発行側のロジックは以下のとおりです。

list = tt.query(table,"SELECT STS1 FROM BATCH_PROCESS where      publish_month='2004/01' ");
i = list.iterator();
System.out.println("koko45");

while(i.hasNext()) {
emp = (BatchProcess)i.next();
System.out.println("koko47");
System.out.println(emp.getSts1()); // BatchProcess列のデータを表示
}

 以上何かレクチャー等いただければ幸いです。
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-09-28 20:36
cayenneを使った事はないですが、普通のつっこみを。

何のDBMSを利用しているのか、STS1とかpublish_monthの型とかさっぱり分かりませんが、
Javaからでなく普通にDBMSに付属のツールとかで
引用:

SELECT STS1 FROM BATCH_PROCESS where publish_month='2004/01'


を実行すれば何が帰ってくるのでしょうか?
nullが本当に1件だけ返ってきているとか、実は30件ぐらいありますだとか。

あと本当に1件だとして、しかもそれにはnull以外の値がきちんと入っているというのであれば、テーブルのSTS1の型とjavaでの型を確認してみる事をお奨めします。
1

スキルアップ/キャリアアップ(JOB@IT)