복붙노트

[SPRING] 스프링 데이터를 사용하는 동안 테이블 이름을 매개 변수의 값으로 바꾸는 방법 JPA nativeQuery

SPRING

스프링 데이터를 사용하는 동안 테이블 이름을 매개 변수의 값으로 바꾸는 방법 JPA nativeQuery

이렇게 :

public interface XXXRepository extends CrudRepository<XXX, Integer> {
@Query(value = "select * from ?1 where ...", nativeQuery = true)
List<XXX> findByXXX(String tableName, ...);}

코드에 따라 MYSQL 구문 오류가 발생합니다. 구문 오류는 SQL의 테이블 이름이 " '"로 둘러싸인 것을 보여줍니다.

해결법

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

    1.이건 불가능 해. 매개 변수는 where 절에서만 사용할 수 있습니다.

    이건 불가능 해. 매개 변수는 where 절에서만 사용할 수 있습니다.

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

    2.jpa 프로젝트에서 entitymanager를 사용할 수 있습니다.

    jpa 프로젝트에서 entitymanager를 사용할 수 있습니다.

    @Autowired    EntityManager entityManager;

    entityManager.createNativeQuery ( "select * from"+ tableName + "")

  3. from https://stackoverflow.com/questions/40956013/how-to-replace-table-name-with-value-from-parameter-while-using-spring-data-jpa by cc-by-sa and MIT license