[SPRING] 스프링 3으로 구성된 JPA를 얻는 방법은 무엇입니까?
SPRING스프링 3으로 구성된 JPA를 얻는 방법은 무엇입니까?
스프링의 문서를 읽었지만 조금 혼란 스럽다. JPA를 구성하는 방법에 대한 몇 가지 다른 옵션이있다.
스프링 3으로 구성된 JPA 2 (최대 절전 모드 포함)를 얻는 가장 좋은 방법은 무엇입니까? pom, web.xml, applicationContext.xml 및 필요한 Java 코드의 예가 있으면 친절하게도 게시하십시오.
감사!
해결법
-
==============================
1.EclipseLink를 사용하지만 구성이 매우 유사해야합니다. 여기에는 가장 중요한 부분이 있습니다.
EclipseLink를 사용하지만 구성이 매우 유사해야합니다. 여기에는 가장 중요한 부분이 있습니다.
Pom.hml :
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>javax.persistence</groupId> <artifactId>javax.persistence</artifactId> <version>2.0.0</version> </dependency>
persistence.xml :
<?xml version="1.0" encoding="UTF-8" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL" /> </persistence>
응용 프로그램 컨텍스트 - .XML :
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation" value="classpath:persistence.xml" /> <property name="persistenceUnitName" value="persistenceUnit" /> <property name="dataSource" ref="dataSource"/> <property name="jpaPropertyMap"> <props> <prop key="eclipselink.weaving">false</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <tx:annotation-driven transaction-manager="transactionManager" />
User.java:
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Integer id; private String name; // Getters and setters }
UserDao.java:
@Repository public class JpaUserDao implements UserDao { @PersistenceContext private EntityManager em; @Override public Item get(Integer id) { return em.find(User.class, id); } }
UserService.java:
@Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Transactional @Override public User getUser(Integer id) { return userDao.get(id); } }
희망이 도움이됩니다.
-
==============================
2.또는 Spring 3+와 JPA 2.0을 동적 프록시의 도움으로 통합 할 수 있습니다.
또는 Spring 3+와 JPA 2.0을 동적 프록시의 도움으로 통합 할 수 있습니다.
여기에서 모든 문서와 다운로드 예제를 찾을 수 있습니다.
이 경우 명명 된 JPA 쿼리와의 인터페이스가 쿼리를 실행하는 데 사용됩니다. 인터페이스는 동적 프록시의 도움으로 일반 Spring Bean으로 처리됩니다. 같은 방식으로 다른 bean에 주입 (또는 autowired) 될 수 있습니다.
또한 쿼리는 별도의 orm-mapping.xml 파일에 있으며 도메인별로 (또는 사용자의 편의에 따라) 분할 될 수 있습니다. 이는 지속적인 계층에 높은 유연성과 유지 보수성을 제공합니다.
public interface OrganisationQueries { @Query(named = "find.organisation.by.role.id") public Organisation findOrganisationByRoleId(Long roleId); @Query(named = "find.all.organisations") public List<Organisation> findAllOrganisations(); } public class OrganisationServiceImpl implements OrganisationService { @PersistenceContext private EntityManager em; @Autowired private OrganisationQueries organisationQueries; @Override public Organisation findOrganisationByRoleId(Long roleId) { return organisationQueries.findOrganisationByRoleId(roleId); } @Override public List<Organisation> findAllOrganisations() { return organisationQueries.findAllOrganisations(); } } <entity-mappings xmlns="..." version="1.0"> <named-query name="find.organisation.by.role.id"> <query><![CDATA[ select r.organisation from Role r where r.id =?1 ]]></query> </named-query> <named-query name="find.all.organisations"> <query><![CDATA[ select org from Organisation org left join fetch org.organisationType ]]></query> </named-query> </entity-mappings>
-
==============================
3.Spring Roo를 살펴 보시고, pom과 필요한 모든 설정 파일 (예 : JPA)과 함께 Spring 웹 프로젝트를 생성 해주십시오. Roo가 마음에 들지 않는다면 그걸 버리고 일반적인 Spring 웹 애플리케이션처럼 프로젝트를 위협 할 수 있습니다. IMHO는 초기 프로젝트 설정을하는 가장 빠른 방법입니다.
Spring Roo를 살펴 보시고, pom과 필요한 모든 설정 파일 (예 : JPA)과 함께 Spring 웹 프로젝트를 생성 해주십시오. Roo가 마음에 들지 않는다면 그걸 버리고 일반적인 Spring 웹 애플리케이션처럼 프로젝트를 위협 할 수 있습니다. IMHO는 초기 프로젝트 설정을하는 가장 빠른 방법입니다.
from https://stackoverflow.com/questions/5373035/how-to-get-jpa-configured-with-spring-3 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 주석을 사용하여 이름으로 봄 콩을 autowiring (0) | 2019.03.02 |
---|---|
[SPRING] 스프링 부트 응용 프로그램은 docker 내부의 시동시 부팅되지 않습니다. (0) | 2019.03.02 |
[SPRING] 봄 3 mvc와 GWT를 통합하는 경험? (0) | 2019.03.02 |
[SPRING] Spring MVC Controller : "return forward", "return redirect"및 "return jsp file"의 차이점은 무엇입니까? (0) | 2019.03.02 |
[SPRING] Spring Tool Suite IDE에서 프로젝트를 재배포하려고 할 때 이미 8080 포트가 발생했습니다. (0) | 2019.03.02 |