[SPRING] JPA와 Spring을 사용하여 목록에서 필드가있는 고유 한 행을 찾는 방법?
SPRINGJPA와 Spring을 사용하여 목록에서 필드가있는 고유 한 행을 찾는 방법?
나는 봄에 연결하는 db를 사용하고 있습니다. 나는 CrudRepository
그것을 할 수있는 방법이 있습니까? 봄 문서를 보았지만 아무것도 찾을 수 없습니다 (http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation).
이것은 내가 피곤한 것이지만 작동하지 않습니다.
@Query("SELECT DISTINCT name FROM people WHERE name NOT IN (?1)")
List<String> findNonReferencedNames(List<String> names);
이것은 내가 얻는 예외 다 :
Error creating bean with name 'peopleRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List de.test.tasks.persistence.PeopleRepository.findNonReferencedNames(java.util.List)!
과
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: people is not mapped [SELECT name FROM people WHERE name NOT IN (?1)]
해결법
-
==============================
1.마침내 @Query 주석이없는 간단한 솔루션을 찾을 수있었습니다.
마침내 @Query 주석이없는 간단한 솔루션을 찾을 수있었습니다.
List<People> findDistinctByNameNotIn(List<String> names);
물론 String 객체가 아닌 객체 객체가 있습니다. 그런 다음 java에서 변경을 수행 할 수 있습니다.
-
==============================
2.이렇게 쿼리를 수정 해 보았습니까?
이렇게 쿼리를 수정 해 보았습니까?
@Query("SELECT DISTINCT p.name FROM People p WHERE p.name NOT IN ?1") List<String> findNonReferencedNames(List<String> names);
참고, 귀하의 엔티티 클래스는 사람이 아니라 사람이라고 가정합니다.
-
==============================
3.
@Query("SELECT DISTINCT name FROM people WHERE name NOT IN (:names)") List<String> findNonReferencedNames(@Param("names") List<String> names);
-
==============================
4.이런 식으로 사용할 수 없습니까?
이런 식으로 사용할 수 없습니까?
@Query("SELECT DISTINCT name FROM people p (nolock) WHERE p.name NOT IN (:myparam)") List<String> findNonReferencedNames(@Param("myparam")List<String> names);
추신 SQL Server 2012에서 쿼리를 많이 작성하고 서버에서 nolock을 사용하는 것이 좋은 방법입니다. 로컬 db가 사용되면 nolock을 무시할 수 있습니다.
데이터베이스 이름이 올바르게 매핑되지 않은 것 같습니다 (질문을 업데이트 한 후).
from https://stackoverflow.com/questions/32079084/how-to-find-distinct-rows-with-field-in-list-using-jpa-and-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 응답을 추출 할 수 없습니다 : 응답 유형에 적합한 HttpMessageConverter가 없습니다. (0) | 2019.01.22 |
---|---|
[SPRING] 스프링 빈 파괴 메소드, 싱글 톤 및 프로토 타입 스코프 (0) | 2019.01.22 |
[SPRING] 한 컨트롤러 메서드에서 다른 컨트롤러 메서드로 리디렉션 (0) | 2019.01.22 |
[SPRING] @Autowire 이상한 문제 (0) | 2019.01.21 |
[SPRING] Spring MVC에서 @JavaConfig가 작동하지 않는 이유는 무엇입니까? (0) | 2019.01.21 |