最近リリースされたQBE機能をspring-data-jpaで使用しています。 1つの例外を除いて、@JoinTableとして注釈が付けられたフィールドは機能していないようで、すべてうまくいくようです。エンティティと@JoinColumnの関係で単純なプリミティブを試してみましたが、クエリは期待どおりに実行されます。しかし、いったん@JoinTable関係だったオブジェクトのSetを設定しようとすると、そのデータはクエリの一部にならなくなりました(ログに記録されたSQLをチェックしました)。私たちはJPAプロバイダとしてHibernateを使用しているので、問題はおそらく実装にあります。私は今私が何か間違っていると仮定するつもりです。動作していない注釈付きフィールドだJPA QBE with @JoinTable
@ManyToMany
@JoinTable(name = "join_table", joinColumns = @JoinColumn(name = "userid", nullable = false), inverseJoinColumns = @JoinColumn(name = "groupid", nullable = false))
private Set<Group> groups= new HashSet<>(0);
。私のQBEのためにそれを設定するために、私は単に私が探している特定の名前を持つ新しいグループを作成します。私は戻ってくるためにそのグループに所属する必要があります。ただし、生成されるSQLには、where句のグループに関する情報は含まれません。
Example<User> example = Example.of(user);
return userRepo.findAll(example, pageable);
とJPAリポジトリを呼び出しスニペット。
アイデアをいただければ幸いです。
返信いただきありがとうございます。クエリの一部としてPluralAttributeが必要な場合は、これを達成するためにQBEを他のものと組み合わせる方法がありますか、サポートが追加されるまでQBEを使用しないでください。 –
[ExampleSpecification](https://github.com/spring-projects/spring-data-jpa/blob/master/src/main/java/org/)で行われているように、あなた自身が 'Specification'を構築しようとすることができますspringframework/data/jpa/repository/support/SimpleJpaRepository.java#L806)、必要なパスを追加し、それを 'JpaSpecificationExecutor'に渡します。 –