2017-11-08 1 views
0

특정 테이블의 일부 데이터를 검색하기 위해 간단한 앱을 만들고 싶다. 하나의 데이터베이스가 있는데 연결할 수 있습니다. 또한 테이블 이름을 하드 코드했을 때 잘 작동합니다. 는하지만 그렇게 URL을 만들고 싶어 : 그것은 내가 예를 들어, 특정 테이블을 줄 것을 작동해야스프링 부트는 url로 주어진 mysql 테이블로부터 데이터를 얻는다.

/demo/{table}/{author} 

. '코미디'그리고 나는 예를 들어 작가의 이름을 설정했다. '스미스'.

내 booksRepository :

@Query(value = "SELECT * FROM :table WHERE author = :author", 
     nativeQuery=true) 
public List<Book> findByAuthor(@Param("author") String author, @Param("table") String table); 

하지만이 작동하지 않았다. 오류가 있습니다.

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''comedy' WHERE author = 'Smith'' at line 1 

'검색어에'이 (가) 추가되었습니다. 그 방법을 삭제할 수 있습니까? 그것은 가능합니까 아니면 모든 것을 하나의 테이블에 넣어야합니까? 건배 :

+0

모든 테이블에 작성자가 있습니까? –

+0

예, 이미 해 보았습니다. 하나의 큰 테이블을 만들었습니다. – Andrew

답변

1

나는 그것을 조사하지 않았지만 쿼리 SQL의 변수는 따옴표 붙은 값을 삽입 할 때만 사용할 수 있으며 테이블 이름과 같은 따옴표로 묶인 식별자가 아닌 것으로 보인다.

+0

은 합법적 인 것처럼 보입니다. 고마워, 나는 몇 가지 해결 방법을 찾으러 갈거야 :) – Andrew

관련 문제