2016-03-12 1 views
0

Как получить только родителя без детей в спящем режиме и без ленивого исключения, когда вы пытаетесь получить доступ к chidlren, поданным после закрытия сессии?
Я имею в виду, вид чистого родительского получения, но я был уверен, что кто-то не получит их с геттером или не поймает ленивое исключение.Как получить только родителя без детей в Hibernate и без ленивого исключения?

<class name="com.electronic.commerce.models.Category" table="Category"> 
    <id name="id" type="long" access="property"> 
     <column name="categoryId" length="20"/> 
     <generator class="native"/> 
    </id> 
    <property name="name" column="categoryName" type="string"/> 
    <property name="parentId" column="categoryParentId" type="long"/> 
    <bag name="children" table="Category" inverse="true" lazy="true" fetch="select"> 
     <key> 
      <column name="categoryParentId" not-null="true"/> 
     </key> 
     <one-to-many class="com.electronic.commerce.models.Category"/> 
    </bag> 
</class> 
+1

проверка http://stackoverflow.com/questions/25362831/solve-hibernate-lazy-init -issue-with-hibernate-enable-lazy-load-no-trans ссылка здесь для ответа –

ответ

0

Смешанный раствор
Xml:

<prop key="hibernate.enable_lazy_load_no_trans">false</prop> 

Java:

DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(); 
defaultTransactionDefinition.setPropagationBehavior(transactionDefinition); 
transactionManager.getTransaction(defaultTransactionDefinition);