Даже если у меня есть lazy="false"
в UserLimits.hbm.xml
Я все еще получаю сообщение об ошибке:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.project.eu.model.UserModel.userLimits, could not initialize proxy - no Session
Разве userLimits
не нужно охотно доставать?
Вот некоторые фрагменты кода. Метод, который выбирает пользователей по customerId:
public List<UserModel> getUsersForCustomer(final Long customerId) {
List<UserModel> users = getHibernateTemplate().execute(
session -> {
Criteria criteria = session.createCriteria(UserModel.class);
criteria.add(Restrictions.eq("customerId", customerId));
return criteria.list();
});
return users;
}
User.hbm.xml
<hibernate-mapping>
<class name="com.project.eu.model.UserModel" table="USR_USERS" batch-size="20">
<cache usage="transactional"/>
<id name="id" type="long">
<column name="ID" precision="19" scale="0" />
<generator class="sequence">
<param name="sequence_name">ID_SEQ</param>
</generator>
</id>
<property name="customerId" type="java.lang.Long">
<column name="CUSTOMER_ID" precision="19" scale="0" />
</property>
<bag name="userLimits" cascade="delete-orphan" >
<key column="USER_ID" />
<one-to-many class="com.project.eu.model.UserLimitsModel" />
</bag>
</class>
</hibernate-mapping>
UserLimits.hbm.xml
<hibernate-mapping>
<class name="com.project.eu.model.UserLimitsModel" table="USER_LIMITS" lazy="false">
<cache usage="transactional"/>
<id name="id" type="long">
<column name="ID" precision="19" scale="0" />
<generator class="sequence">
<param name="sequence_name">ID_SEQ</param>
</generator>
</id>
<version name="version" type="java.lang.Long" >
<column name="VERSION" precision="10" scale="0" />
</version>
<property name="userId" type="java.lang.Long" >
<column name="USER_ID" precision="19" scale="0" not-null="true" />
</property>
</class>
</hibernate-mapping>
Что может быть не так?