[Seasar-user:1820] Re: S2Hibernate で QBE ( Query by Example )
佐藤 亘
sato_wao
2005年 4月 15日 (金) 09:57:32 JST
お世話様です。佐藤です。
empnoにいくつか値を設定して実行してみたところ
テーブル内のdeptonoが「0」であるデータがList(複数のEmployee)で返ってきているようです。
下記のクエリーの(this.DEPTNO=?)の所に「0」を指定した結果みたいです。
Employeeのdeptonoがint型であることを考えると、
employee.setEmpno(new Integer(empno));
のところで何も設定されず、しかし、employee.setDeptnoが呼ばれたという感じです。
また、EMPNO(4桁)とDEPTNO(2桁)なので、DEPTNOに4桁設定=>失敗で「0」が設定
もあるのでは?と思い、2桁を設定して実行してみましたが、結果は同じでした。
次に、
employee.setDeptno(empno);
とメソッドを変更してしてやってみたところ、
select this.EMPNO as EMPNO0_, this.ENAME as ENAME0_, this.JOB as JOB0_, this.MGR as MGR0_, this.HIREDATE as HIREDATE0_, this.SAL as SAL0_, this.COMM as COMM0_, this.DEPTNO as DEPTNO0_ from EMP this where (this.DEPTNO=?)
と、同じクエリーが出力され、DEPTNOが指定された値(これとしては期待通り)のEmployeeが取得できました。
マッピングが上手くいっていないように見るといった感じです。
長くなりましたが、宜しくお願いします。
佐藤 亘 <[E-MAIL ADDRESS DELETED]> wrote:
お世話様です。佐藤です。
なかなか手が付けられなく、すみません。
なるべく早くお知らせしますので、しばしお待ちください。
"Okazaki, Kenichi" <[E-MAIL ADDRESS DELETED]> wrote: おかざきです。
設定等には、問題ないと思います。
ログに出てくるSQLには、設定した値は出てきません。
しかし、実際には、"(this.DEPTNO=?)"の"?"の部分設定した値が差し込まれた状態でSQLが実行されるので、
resultには、検索された結果が返ってきていると思います。
値が返ってきているか、確認していただけますか?
-----Original Message-----
From: [E-MAIL ADDRESS DELETED] [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of 佐藤 亘
Sent: Wednesday, April 13, 2005 1:49 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:1797] S2Hibernate で QBE ( Query by Example )
さとうと申します。
↓のように、 S2Hibernateのサンプルを利用してQBE(Query by Example)をやってみました。
Employee employee = new Employee();
employee.setEmpno(new Integer(empno));
Example example = Example.create(employee);
S2Session session = sessionFactory_.getSession();
Criteria criteria = session.createCriteria(Employee.class);
criteria.add(example);
List result = criteria.list();
if (result.size() > 0) {
return (Employee) result.get(0);
} else {
return null;
}
empnoに設定してつもりが(setEmpno()、コンソールのログを見てみると、
Hibernate: select this.EMPNO as EMPNO0_, this.ENAME as ENAME0_, this.JOB as JOB0_, this.MGR as MGR0_, this.HIREDATE as HIREDATE0_, this.SAL as SAL0_, this.COMM as COMM0_, this.DEPTNO as DEPTNO0_ from EMP this where (this.DEPTNO=?)
と、(this.DEPTNO=?)の指定されてました。これは設定方法とかが悪かったのでしょうか?
よろしくお願いします。
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
http://lists.sourceforge.jp/mailman/listinfo/seasar-user_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
http://lists.sourceforge.jp/mailman/listinfo/seasar-user
-------------- next part --------------
HTMLの添付ファイルが除去されました.
URL: http://lists.sourceforge.jp/mailman/archives/seasar-user/attachments/20050415/379a964c/attachment.htm
Seasar-user メーリングリストの案内