Поиск подзапроса спецификации JPA через REST - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблема с поиском внутри 2 класса с отношением «многие ко многим» и таблицей соединений.Я хотел бы знать, как исправить мой код, а также сделать запрос URL, чтобы начать этот поиск, используя весеннюю загрузку 1.5.

1) Я хотел бы получить всех профессоров с (student.names = john и Professor.namep = Дэвид)

студент

private Long ids;
private Long names;

профессор

private Long idp;
private Long namep;
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH,
        CascadeType.MERGE,
        CascadeType.REFRESH,
        CascadeType.PERSIST})
@JoinTable(name = "StudentProfessor",
joinColumns = { @JoinColumn(name = "idp") },
inverseJoinColumns = { @JoinColumn(name = "ids") })
private Set<Student> student = new HashSet<>();

На самом деле я могу только искать, чтобы получить всех профессоров с именем, соответствующим этому:

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ

public class ProfessorSpecification implements Specification<Professor> {

private Professor filter;

    public ProfessorSpecification(Product filter) {
        super();
        this.filter = filter;

    }
    public Predicate toPredicate(Root<Professor> root, CriteriaQuery<?> cq,
            CriteriaBuilder cb) {
        Predicate p = cb.conjunction();
        if (filter.getType() != null) {
            p.getExpressions()
                    .add(cb.equal(root.get("names"), filter.getNamep()));
        }
    return p;
    }

}

RESTCONTROLER

@GetMapping(path = "/search/professor")
public ResponseEntity<List<Professor>> searchProfessor(Professor searchedProfessor) {
    Specification<Professor> spec = new ProfessorSpecification(searchedProfessor);
    List<Professor> result = repository.findAll(spec);
    return ResponseEntity.ok(result);
}

Но я не знаю, как сделать подзапрос для этого случая

2) Я хотел бы знать URLчтобы сделать поиск для этого

Я пытался это

@GetMapping(path = "/search/professor{p}/student{s}")

для http://localhost:8080/search/professor?namep=john/student?names=david без успеха

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