У меня есть этот репозиторий:Как создать предикат из запроса HQL?
@Repository
public interface UserRepository extends
JpaRepository<User, String>,
JpaSpecificationExecutor<User> {
@Query("select u from User u, UserRole ur " +
"where u.dep = ur.dep " +
"and u.allowed = 1")
List<User> getAllowed();
}
Но я хочу, чтобы изменить @Query
с помощью пользовательских Spring Data Specification
, чтобы вызвать это нравится:
repository.findAll(new Allowed());
Так я добавил extends JpSpecificationExecutor<User>
в моем хранилище и теперь я пытаюсь создать Specification
реализацию:
public class Allowed implements Specification<User> {
@Override
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
//??
}
}
Как преобразовать запрос выше в Predicate? Как я могу выполнить соединение с UserRole
?