복붙노트

[SPRING] Spring을 사용하여 JPA EntityManager를 주입하는 방법

SPRING

Spring을 사용하여 JPA EntityManager를 주입하는 방법

JaPaDaoSupport를 확장하지 않고 Spring에서 JPA entityManager 객체를 DAO 클래스에 삽입 할 수 있습니까? 그렇다면 Spring은이 경우 트랜잭션을 관리합니까?

나는 Spring 구성을 가능한 한 간단하게 유지하려고 노력하고있다.

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="em"/>
</bean>
<bean id="em" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="myPU"/>
</bean>

해결법

  1. ==============================

    1.예. JPA가 약간 특이한 것이기 때문에 문제가 많습니다. 명시 적 Spring 종속성없이 JPA EntityManager 및 EntityManagerFactory를 주입하는 것에 대한 문서를 읽는 것이 좋습니다.

    예. JPA가 약간 특이한 것이기 때문에 문제가 많습니다. 명시 적 Spring 종속성없이 JPA EntityManager 및 EntityManagerFactory를 주입하는 것에 대한 문서를 읽는 것이 좋습니다.

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-jpa

    이렇게하면 EntityManagerFactory를 삽입하거나 EntityManager의 스레드 안전성, 트랜잭션 프록시를 직접 삽입 할 수 있습니다. 후자는 더 간단한 코드를 만들지 만 더 많은 스프링 배관이 필요합니다.

  2. ==============================

    2.이것은 12.6.3에서 흰색으로 검은 색으로 문서화되어있다. 일반 JPA를 기반으로 DAO 구현 :

    이것은 12.6.3에서 흰색으로 검은 색으로 문서화되어있다. 일반 JPA를 기반으로 DAO 구현 :

    트랜잭션 관리와 관련하여 12.7을 살펴보십시오. 트랜잭션 관리 :

  3. ==============================

    3.최신 Spring + JPA 버전은 근본적으로이 문제를 해결합니다. Spring과 JPA를 별도의 스레드에서 사용하는 방법에 대해 더 많이 배울 수 있습니다.

    최신 Spring + JPA 버전은 근본적으로이 문제를 해결합니다. Spring과 JPA를 별도의 스레드에서 사용하는 방법에 대해 더 많이 배울 수 있습니다.

  4. from https://stackoverflow.com/questions/2421339/how-to-inject-jpa-entitymanager-using-spring by cc-by-sa and MIT license