Мне нужно заполнить сущность с детьми организациями, и хорошо работает, когда мне нужны все дети, но теперь я только хочу иметь несколько.

Например, у меня Owner 1-----n Pet

Если я ownerRepositoty.findAll(); Я получаю все владельцы с каждым, имеющий массив всех домашних животных. Но скажем, я хочу получить все владельцы с массивом PET, имея только те, которые начинается с N.

Пример родительской организации:

public class Owner {
    @OneToMany(mappedBy="Owner")
    private Set<Pet> pets; //This gets filled with all pets

    //getters & setters
}

И детская сущность:

 public class Pet {
        @ManyToOne
        @JoinColumn(name="owner_id", nullable=false)
        private Owner owner;

        //getters & setters
 }

Я попробовал с JOIN FETCH, как объяснил здесь в запросе репозитория, но он только что сделал обычный SQL {{x1 }} Что не то, что я ищу.

Любые идеи?

0
Carlos López Marí 3 Окт 2019 в 16:17

1 ответ

Лучший ответ

Я нашел способ сделать это: Вы можете использовать аннотацию @ge для фильтрации ребенков one to many или many to many отношений.

public class Owner {

    @OneToMany(mappedBy="Owner")
    @Where(clause = "name like 'N%'")
    private Set<Pet> pets; //This gets filled with pets with a name starting with N

    //getters & setters
}
0
Carlos López Marí 4 Окт 2019 в 07:24