У меня две сущности:
User (имеет поле String userName);School (имеет поле Long id);В School у меня есть:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, targetEntity = User.class)
@JoinColumn(name = "schoolId")
private List<User> users;
В User у меня есть:
@ManyToOne(optional = false, targetEntity = School.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "schoolId", referencedColumnName = "id", nullable = false)
private School school;
Еще у меня SchoolRepository:
public interface SchoolRepositoryextends CrudRepository<School, Long> {
}
И я хочу сделать запрос к базе данных по именам методов запроса JPA. Например, я хочу найти всех пользователей с именем John в школе с id = 1.
Как это сделать через SchoolRepository?
Единственное, что мне приходит в голову, это findByIdAndUsersUserName, но это дает мне исключение: в моей таблице users нет поля с именем schools.
ПРИМЕЧАНИЕ:
конечно, это возможно через @Query, но мне интересно, есть ли способ сделать это через method names.
В самом деле, это не JPA API. Это весна. SPRING DATA JPA! = JPA API
Да, ты прав, спасибо.
Сделать это можно только в UsersRepository. selectByNameAndSchool
@DenB Ключевое слово And предназначено для and с множественным условием для where. проверьте 6.3.2 из docs.spring.io/spring-data/jpa/docs/current/reference/html/…




Вы имеете в виду весенние данные jpa? docs.spring.io/spring-data/jpa/docs/current/reference/html/…