Можно ли использовать поле не-сущности в спецификации? - PullRequest
0 голосов
/ 15 января 2019

У меня есть код:

public class CustomFilter<T> implements Specification<EntityHE> {

    @Override
    public Predicate toPredicate(Root<EntityHE> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
        List<Predicate> predicates = new ArrayList<>();

        Predicate hasTenant = cb.equal(root.get("custom_field"), "value");
        predicates.add(hasTenant);

        return cb.and(predicates.toArray(new Predicate[predicates.size()]));
    }
}

@Entity(name = "entity")
@Table(name = "table")
public class EntityHE {

    @Getter @Setter
    @Column(name = "kind")
    private String kind;

    @Getter @Setter
    @Column(name = "modified")
    private Instant modified;

    public EntityHE(){};
}

Я могу вызвать ошибку, потому что у меня нет поля "custom_field" в моей сущности. Можно ли фильтровать по этой спецификации, не добавляя «custom_field» в качестве поля в моей сущности?

1 Ответ

0 голосов
/ 15 января 2019

Нет, это невозможно. Поскольку спецификация будет использоваться в запросе API JPA Criteria и там вы можете запрашивать только сопоставленные атрибуты.

...