Hibernate双主键,多表关联操作相关知识
class="com.hb.po.PetinforId">
?
?
? ?? ?? ?? ?<key-property name="itemid" type="java.lang.String">
?
?
? ?? ?? ?? ?? ? <column name="ITEMID" length="10" />
?
?
? ?? ?? ?? ?</key-property>
?
?
? ?? ?? ?? ?<key-property name="pid" type="java.lang.Long">
?
?
? ?? ?? ?? ?? ? <column name="PID" precision="22" scale="0" />
?
?
? ?? ?? ?? ?</key-property>
?
?
? ?? ???</composite-id>
?
?
? ?? ???<many-to-one name="cate" class="com.hb.po.Cate" fetch="select" lazy="false">
?
?
? ?? ?? ?? ?<column name="CATEID" precision="22" scale="0" />
?
?
Hibernate Lazy 问题, Spring 中引入了 OpenSessionInViewInterceptor, 这样虽然解决了页面上的 Lazy Load 问题,却增加了各层之间的偶合性,
如果一个 Lazy 的 Collection 在页面上可以被正确的 load, 但是如果请求不是来自于 HttpServletRequest (比如在 TestCase 或 Service 中希望获取 lazy 的属性),
一般会导致两种错误:
?
?
代码
?
?
1. 设置了 lazy = "true"? ?
?
?
会导致 org.hibernate.LazyInitializationException: failed to lazily initialize a collection of xxx: xxx - no session or session was closed? ?
?
?
2. 设置里 lazy = "false"? ?
?