3
我得到這個Hibernate映射:Hibernate的標準問題,複合鍵
<class name="CoverageTerm" table="coverage_term">
<composite-id name="id" class="CoverageTermPK">
<key-many-to-one name="productTerm" class="ProductTerm">
<column name="termtype_id"></column>
<column name="product_id" ></column>
</key-many-to-one>
<key-many-to-one name="productCoverage" class="ProductCoverage" column="product_coverage_id"></key-many-to-one>
</composite-id>
<property name="data"/>
</class>
這是一個關係到表productCoverage和複合鍵關係productterm一個簡單的複合鍵映射。
現在問題就來了,我的搜索功能:
public CoverageTerm getCoverageTermFromProductTermCoverage(ProductTerm productTerm, ProductCoverage productCoverage) {
Criteria critCt = getSession().createCriteria(CoverageTerm.class);
Criteria critCtId = critCt.createCriteria("id");
critCtId.add(Restrictions.eq("productTerm", productTerm));
critCtId.add(Restrictions.eq("productCoverage", productCoverage));
return (CoverageTerm) critCt.uniqueResult();
}
這應該讓我的「ID」(這是主鍵,CoverageTermPK)一個子標準,並在其上添加限制,但是當我運行它我得到錯誤信息:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.QueryException: could not resolve property: productTerm of: CoverageTerm
這感覺很奇怪,它不應該得到CoverageTermPK嗎?如果我嘗試在標準的「數據」屬性上使用子標準,我似乎無法在「標識」子標準中獲得PK。
任何想法爲什麼會發生這種情況?
也做到了,非常感謝你! – Dytut 2011-05-25 07:42:54
不錯的工作。花了整整一個早上試圖解決這個問題。這在jboss Hibernate文檔中有記錄嗎? – Hector 2014-07-15 11:07:52