Sto usando Spring per connettermi al db. Ho un'interfaccia che si estende CrudRepository<People, Long>
Ecco la query che voglio eseguire sul db: SELECT DISTINCT name FROM people WHERE name NOT IN UserInputSet
. Preferirei farlo senza alcuna annotazione sql, quindi se è possibile senza il NOT
va bene.Come trovare righe distinte con campo nell'elenco usando JPA e Spring?
C'è un modo per farlo? Ho guardato il doc di primavera, ma non riesco a trovare nulla (http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation)
Questo è quello che stanco, ma non sta funzionando.
@Query("SELECT DISTINCT name FROM people WHERE name NOT IN (?1)")
List<String> findNonReferencedNames(List<String> names);
questa è l'eccezione ottengo:
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)!
e
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: people is not mapped [SELECT name FROM people WHERE name NOT IN (?1)]
"non funziona". Non posso essere più chiaro di così ... a parte ciò che sta accadendo, quale errore, quale registro, quale entità, ecc. –
aggiornerò la domanda con l'errore che ho. –
non dovresti "colon" ise il bit '1'? – ha9u63ar