[SPRING] CrudRepository 외부 파일에 @Query SQL을 저장하는 방법?
SPRINGCrudRepository 외부 파일에 @Query SQL을 저장하는 방법?
데이터베이스 연결을 위해 CrudRepository와 함께 Spring을 사용하고 있습니다.
이제는 꽤 긴 (몇 줄의) sql 쿼리가 필요합니다. 클래스 경로의 파일에서 코드 내에서 직접 유지하는 것이 좋습니다.
그러나 나는 이것을 어떻게 얻을 수 있습니까? 내 레포는 다음과 같이 보입니다.
@Query(value = "<my very long sql query>", nativeQuery = true) //how to inject file content?
@Modifying
@Transactional
public void executeSpecificSql();
해결법
-
==============================
1.프로젝트 설정에 리소스 폴더가 있으면 /META-INF/jpa-named-queries.properties 파일 아래에 만들고 repoClass.methodName = yoursql과 같이 키 값 쌍을 추가하십시오. 봄 데이터가 나타납니다.
프로젝트 설정에 리소스 폴더가 있으면 /META-INF/jpa-named-queries.properties 파일 아래에 만들고 repoClass.methodName = yoursql과 같이 키 값 쌍을 추가하십시오. 봄 데이터가 나타납니다.
긴 검색어의 경우 xml 속성 파일을 CDATA 태그와 함께 사용하는 것이 가장 좋습니다. https://stackoverflow.com/a/19128259/1194415
-
==============================
2.아래 단계를 사용하십시오.
아래 단계를 사용하십시오.
-
==============================
3.설정에 맞는지 확실하지는 않지만 다음 방법으로 수행 할 수 있습니다.
설정에 맞는지 확실하지는 않지만 다음 방법으로 수행 할 수 있습니다.
1)
태그를 사용하여 최대 절전 모드 매핑 파일에 쿼리 추가하기 <sql-query name="MyQuery">.......
2)
태그를 사용하여 위의 파일을 포함하는 최대 절전 모드 설정 파일을 정의하십시오 <mapping resource="MyQuery.sql.xml"/>
3) 위의 설정 파일을 가리키는 "hibernate.ejb.cfgfile"속성을 가진 지속성 파일 정의하기
<property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"/>
4) 위의 특성 파일을 사용하여 EntityManagerFactory를 빌드하십시오
이제 위 쿼리를 Repository 메서드에서 사용할 수 있습니다.
@Query(name = "MyQuery", nativeQuery = true) [return type] executeMyQuery();
from https://stackoverflow.com/questions/27902242/how-to-store-query-sql-in-external-file-for-crudrepository by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring과 DBCP로 JDBC 커넥션을 처리하는 적절한 방법은 무엇입니까? (0) | 2019.02.18 |
---|---|
[SPRING] Spring-ws 엔드 포인트에서 HTTP 헤더에 액세스하는 방법? (0) | 2019.02.18 |
[SPRING] 봄 부팅 응용 프로그램을 시작할 수 없습니다. (0) | 2019.02.18 |
[SPRING] 테스트 할 때 데이터 소스로 봄 부팅 (0) | 2019.02.18 |
[SPRING] 스프링 빈을 서블릿에로드한다. (0) | 2019.02.18 |