Spring boot JPA фильтр спецификаций родительских потомков - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу отфильтровать родительский элемент на основе дочернего атрибута с использованием спецификации спецификации JPA, я знаю, как я могу это сделать, когда у родителя есть только один дочерний элемент, но я не знаю, как я могу реализовать его, когда у родителя есть коллекция дочерних элементов (s) и я хочу получить последний ребенок из коллекции и отфильтровать его.У меня есть две модели сущностей, как показано ниже:

public class Parent
{

    //primary keys and setter/getters implemented in here


    @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
    private Collection<Child> childs;
}

public class Child
{

    //primary keys and setter/getters implemented in here

    private String childName;

    @ManyToOne
    private Parent parent;
}

Вот класс спецификации:

public class TestSpecification implements Specification<Parent>
{
    private String childName;

    public TestSpecification(String childName)
    {
        this.suspensionState = suspensionState;
    }

    @Override
    public Predicate toPredicate(Root<Parrent> root, CriteriaQuery<?> query, CriteriaBuilder cb)
    {
        if (suspensionState == null)
        {
            return cb.isTrue(cb.literal(true)); // always true = no filtering
        }

        Expression<Collection<Child>> childs = root.get("childs");

        //cb.equal...
    }
}

Как вы можете видеть, я получаю childs коллекцию от родителя в методе toPredicate, ноя не знаю, как я могу получить последний индекс от childs Collection

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...