- PR -

Hibernate利用SQL検索のエラーについて

1
投稿者投稿内容
HSIN YI
会議室デビュー日: 2007/11/19
投稿数: 4
お住まい・勤務地: 神戸
投稿日時: 2007-12-04 17:58
Hibernateを使ってEmployeeと関連付けしているSkillsを検索するが、Junitで実行した結果とWebアプリで検索した結果のSQL文が違います。
Employeeのマッピングファイル:Skillsの設定
<set
name="skills" table="SKILL_MAP" cascade="none"
lazy="false" order-by="SKILL_ID">
<key column="EMPLOYEE_ID"/>
<many-to-many column="SKILL_ID" class="Skill"/>
</set>
トランザクションはSping2.0で管理され、テーブルの検索はHibernateを使用します。

StrutsのActionクラスで以下の構文を取り出そうとしたら、下記のエラー文が出ました。
※employeeServiceはprivate インスタンスとして持っている、関連づけはDIで設定しています。
Employee employee = employeeService.getEmployee(employeeId);
Set Skills = employee.getSkills();


2007-12-04 17:32:28,437 WARN logWarnings (JDBCExceptionReporter.java:54) - SQL Warning: 0, SQLState: null
2007-12-04 17:32:28,437 WARN logWarnings (JDBCExceptionReporter.java:55) - Connection readOnly mode is not enforcable after the connection has been established. To enforce a read only connection, set the readOnly data source or connection property.

Juintのテストケースで以下の構文をSkillsを取り出す場合は上記のエラー文が出ずに、思った通りのSQL文を発行してくれました。
EmployeeService employeeService = (EmployeeService) factory.getBean("employeeService");
Employee employee = employeeService.getEmployee(new Integer(2));
Set empSkills=(Set) employee.getSkills();

Webアプリで検索した場合、order by の順番で取ってくれないです。
これは上記のエラー文の影響でしょうか?

いくつの方法を検証しましたが、うまくいかず、Hibernateの問題なのかDIの設定に不適切なのか分からないのです。
どうか、教えてください。お願いします。
1

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