[SPRING] 스프링 부트 애플리케이션에서 쿼리를 외부화
SPRING스프링 부트 애플리케이션에서 쿼리를 외부화
spring-boot 1.5.6 RELEASE를 사용하고 있습니다. 기본 작업을하고 싶습니다. 저장소의 @Query 주석에서 xml 파일로 쿼리를 이동하십시오.
약간의 독서 끝에 orm.xml 또는 jpa-named-queries.properties를 사용하여 사용자 정의 쿼리를 작성할 수 있다는 것을 알았습니다.
이 XML 파일이 어디에 있어야하는지에 대한 파일 구조를 이해하지 못합니다. 그리고 내 프로젝트에 META-INF 폴더가 없습니다.
예:
POJO 클래스 :
@Entity
public Class Customer {
private int id;
private String name;
// getters and setters
}
저장소:
public interface CustomerRepository extends PagingAndSortingRepository<Customer,Integer> {
// this query I need from an external xml file as it might be quite complex in terms of joins
@Query("Select cust from Customers cust")
public List<Customer> findAllCustomers();
}
편집 :이 stackoverflow 질문을 참조하십시오. META-INF 폴더가 없으므로 이러한 파일 (orm.xml 및 persistence.xml)을 저장 해야하는 위치를 알아야합니다.
미리 감사드립니다 !!
해결법
-
==============================
1.resources 폴더 안에 META-INF를 작성하십시오. 이제 해당 META-INF 폴더 내에 jpa-named-queries.properties 파일을 작성하십시오.
resources 폴더 안에 META-INF를 작성하십시오. 이제 해당 META-INF 폴더 내에 jpa-named-queries.properties 파일을 작성하십시오.
이 속성 파일 안에 다음과 같이 쿼리를 작성하십시오.
Customer.findAllCustomerByNamedQuery = 고객 c에서 c를 선택하십시오
여기서 고객은 엔티티 클래스의 이름을 나타내고 findAllCustomerByNamedQuery는 조회 이름입니다.
고객 저장소에 다음을 작성하여 특성 파일에 작성된 쿼리를 호출하십시오.
List <고객> findAllCustomerByNamedQuery ();
from https://stackoverflow.com/questions/46060590/externalize-query-in-spring-boot-application by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 소나 : 인스턴스 메소드는 "정적"필드에 쓰지 않아야합니다. (0) | 2019.08.14 |
---|---|
[SPRING] Spring Hibernate Jackson Hibernate5 모듈 (0) | 2019.08.14 |
[SPRING] 스프링 부트 응용 프로그램에서 junit 테스트가 임베디드 mongoDB를 사용하도록 만드는 방법은 무엇입니까? (0) | 2019.08.14 |
[SPRING] Springfox Swagger-UI를 추가했는데 작동하지 않습니다. 무엇을 놓치고 있습니까? (0) | 2019.08.14 |
[SPRING] 비동기 스프링에 여러 threadPoolExecutor를 사용하는 방법 (0) | 2019.08.14 |