宿主表配置:
<class name="BaseInfo" table="BaseInfo" lazy="true">
<id name="Id" type="java.lang.Long">
<column name="ID" precision="30" scale="0" />
<generator class="native"></generator>
</id>
.....
<one-to-one name="Address" class="cn.com.ctsi.xapc.model.DeputyAddress" constrained="true" fetch="select" lazy="proxy"/>
从表配置:
<class name="Extension" table="Extension" lazy="true">
<id name="Id" type="java.lang.Long">
<column name="ID" precision="30" scale="0" />
<generator class="foreign">
<param name="property">BaseInfo</param>
</generator>
</id>
<one-to-one name="BaseInfo"
class="BaseInfo" constrained="true" />
...
在检索中, 使用session.createQuery("from BaseInfo") 的方式检索,没有出现N+1查询。 但是当取得一个宿主对象后,通过它获得其从属属性时,宣告失败, 即,无法这样获得:baseInfo.getExtension() 一个从表属性。
请问如何获得才能通过baseInfo实例获得 Extension实例?
<class name="BaseInfo" table="BaseInfo" lazy="true">
<id name="Id" type="java.lang.Long">
<column name="ID" precision="30" scale="0" />
<generator class="native"></generator>
</id>
.....
<one-to-one name="Address" class="cn.com.ctsi.xapc.model.DeputyAddress" constrained="true" fetch="select" lazy="proxy"/>
从表配置:
<class name="Extension" table="Extension" lazy="true">
<id name="Id" type="java.lang.Long">
<column name="ID" precision="30" scale="0" />
<generator class="foreign">
<param name="property">BaseInfo</param>
</generator>
</id>
<one-to-one name="BaseInfo"
class="BaseInfo" constrained="true" />
...
在检索中, 使用session.createQuery("from BaseInfo") 的方式检索,没有出现N+1查询。 但是当取得一个宿主对象后,通过它获得其从属属性时,宣告失败, 即,无法这样获得:baseInfo.getExtension() 一个从表属性。
请问如何获得才能通过baseInfo实例获得 Extension实例?
本文探讨了在使用ORM框架时遇到的N+1查询问题,特别是在获取宿主表与从表之间的关联数据时的问题。文章详细介绍了宿主表与从表的配置,并讨论了如何正确设置关联关系以避免N+1查询问题。
1029

被折叠的 条评论
为什么被折叠?



