私は奇妙な問題に直面していて、解決策を見つけることができません。MySQlデータベースからHibernateを使用してJavaでオブジェクトのセットをロードしようとしています。
これらは私の休止状態のマッピングとコードの簡略化されたバージョンです:
<class name="org.Foo.Class1" table="class_profile" >
<cache usage="read-write"/>
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="amount" column="amount"/>
</class>
<class name="org.Foo.Class2" table="class_profile" >
<cache usage="read-write"/>
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="amount" column="amount"/>
</class>
これは、オブジェクトにアクセスするための私のコードです。
public List<Class1> loadProfiles(final List<Integer> pIds)
{
return (List<Class1>)getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
return session.createQuery("from Class1 il where il.id in (:idList)")
.setParameterList("idList", pIds)
.list();
}
});
}
さて、コードを実行すると
List<Class1> profiles = fooService.loadProfiles(Arrays.asList(3,4));
リストプロファイルに(2つではなく)4つのオブジェクト (2つのClass1オブジェクトと2つのClass2オブジェクト)があります。2つのClass2オブジェクトはどこから来ていますか?