我有User
到Cars
1对n。
映射:
用户:
<set inverse="true" name="cars" table="CAR">
<key>
<column name="UserID" not-null="false"/>
</key>
<one-to-many class="entity3.Car"/>
</set>
汽车:
<many-to-one class="entity3.User" name="user">
<column name="UserID" not-null="false"/>
</many-to-one>
在我获得一些用户并关闭会话后,在调试器中,在user
我看到PersistentSet cars
,并将此例外视为值:
>Exception occurred in target VM: failed to lazily initialize a collection of role: entity3.User.cars, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: entity3.User.cars, no session or session was closed
这是正常行为吗?这些例外是否会降低性能?
答案 0 :(得分:1)
您将收到此异常,因为已用于获取User实体的会话已关闭(更可能是它必须在代码中的某处被销毁)。 如果您需要获取Cars集合,则必须确保在尝试访问User实体中的Cars属性时打开相同的会话。
我也陷入了这个陷阱。
我不认为例外本身会导致任何性能问题。