在呈现hibernateTemplate().find的结果时成功地使用了一个数据模型之后,我终于实现了这个目标在另一个没有多对一映射到另一个类的类上
有没有人使用过类似的定义,比如下面的定义,你需要所有的ParentClass加上子类的一个属性。在我的用例中,我需要显示receiptDate以及包含在ParentClass实例中的所有其他值。
<hibernate-mapping> <class catalog="myCatalog" name="myCatalog.model.orm.MyClass" table="myTable">
<id name="consignmentId" type="java.lang.Integer">
<column name="myTable_id"/>
<generator class="identity"/>
</id>
<many-to-one class="myCatalog.model.orm.ParentClass" fetch="select" name="pTable">
<column name="pTable_id" not-null="true"/>
</many-to-one>
<property name="receiptDate" type="timestamp">
<column length="19" name="receipt_date" not-null="true"/>
</property> </class> </hibernate-mapping>
我得到的最近的是:hibernateTemplate()。find("select c. parentclass from myClass c");
然而,当尝试寻址parentClass项时,例如:parentClass. depotaddress在数据表中,我得到以下错误,因为parentClass尚未加载:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
如果您能指点我,我将不胜感激。
我刚刚找到了一个解决方案,通过强制在ParentClass上加载:
<many-to-one class="myCatalog.model.orm.ParentClass" lazy=false fetch="select" name="pTable">
你的问题很不清楚。如果您想做的是加载所有MyClass
实例以及它们的pTable
父实例,那么要使用的查询是
select m from MyClass m inner join fetch m.pTable
这当然在Hibernate参考文档中有描述。