#java #hibernate #jpa #spring-data-jpa #jpql
Вопрос:
У меня есть двунаправленные @OneToMany
или родительско-дочерние отношения между двумя сущностями:
@Entity
public class Test {
@OneToMany(mappedBy = "test")
private Set<Answer> answers = new HashSet<>();
}
@Entity
public class Answer {
@ManyToOne
@JoinColumn(name = "test_id")
private Test test;
@Column
private Boolean isCorrect;
}
Я хочу выбрать все Test
s, у которых нет Answer
или Test
s с Answer
isCorrect
установленным свойством false
.
Я использую Spring Boot
.
Ответ №1:
Я предполагаю, что идентификатор теста имеет тип Integer:
public interface TestRepository extends JpaRepository<Test, Integer> {
@Query("select t from Test t join t.answers a where a is empty or a.isCorrect = true")
List<Test> findTestsWithNoOrIncorrectAnswers();
}