Ich versuche Redundanz zu vermeiden, indem ich das zweite Argument an die Methode mit Listengröße übergebe. Stattdessen verwende ich EL, aber ich habe einen Fehler:Warum die SPEL-Unterstützung in Spring Data JPA @Query nicht funktioniert?
org.hibernate.QueryException: Not all named parameters have been set: [$synthetic$__1] [SELECT distinct b FROM Book b join b.bookHashtags as ht where ht.hashtagName in :tags group by b.uniqueIdentifier having count(ht.uniqueIdentifier) = :$synthetic$__1]
@Repository
public interface BookRepository extends JpaRepository<Book, Long>, JpaSpecificationExecutor<Book> {
@Query("SELECT distinct b FROM Book b join b.bookHashtags as ht where ht.hashtagName in :tags " +
"group by b.uniqueIdentifier having count(ht.uniqueIdentifier) = :#{#tags.size()}")
List<Book> findAllBooksContainedTags(@Param("tags") Set<String> tags);
}
I Feder-data-JPA 1.11.0.RELEASE verwenden. Ich weiß, dass diese Funktion in Version 1.4 entwickelt wurde. Warum funktioniert es nicht in meinem Fall ...