Spring 트랜잭션에서 JPA와 함께 Hibernate를 사용하려고한다. 모두 작동해야하지만 구성에서 뭔가를 놓친 것 같습니다.JPA Hibernate Spring - 트랜잭션이 열리지 않았다.
내 persistence.xml 파일 :
<persistence-unit name="pzk" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.transaction.flush_before_completion"
value="true" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" />
</properties>
</persistence-unit>
내 DB-의 context.xml 파일 : 물론
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="databasePlatform" value="${db.dialect}" />
</bean>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
</bean>
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
내가 <tx:annotation-driven>, <context:annotation-config>,<context:component-scan basepackage="bla.bla.bla">
이 내 서비스 @Transactional
으로 (방법을 표시하는 시도 표시됩니다, 클래스 및 둘 다)
서비스에서 모델 클래스의 컬렉션을 사용하려고하면 문제가 발생합니다. LazyInitializationException
이 발생합니다. 디버그는 진행중인 트랜잭션이 없음을 나타냅니다. 이걸 도와 주실 수 있겠습니까?
P. 열망하는 가져 오기는 작동하지만 이것은 옵션이 아닙니다.
또한의 EntityManagerFactory의 '<속성 이름 = "packagesToScan"값 = "your.model.package"/>는'의 persistence.xml 파일을 제거하기를 추천 할 것입니다. – JMelnik