在我們的領域模型,我們有JPQL - 選擇在一個某些元素許多集合
@Entity
@SequenceGenerator(name = "wordlist_seq", sequenceName = "wordlist_seq")
public class QuestionSet {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "wordlist_seq")
private Long id;
@OneToMany(cascade = CascadeType.ALL)
private List<Question> questions;
,我想寫的是獲取那些在questions
收集匹配IN
至少一個問題的所有QuestionSet
實例查詢謂詞,我也想只在questions
集合中有匹配的問題。
這裏是我寫的查詢:
SELECT s FROM QuestionSet s JOIN s.questions q WHERE q IN (SELECT ar.question FROM AppointedRepetition ar WHERE ar.date < :tomorrow)
日期從喬達時庫爲DateTime
型的,我把它像這樣:
query.setParameter("tomorrow", DateTime.now().plusDays(1))
現在這個工程部分,我只得到匹配得當的那些QuestionSets
,但我也得到了所有的問題,即使例如其中只有一個匹配IN
。
我的期望值是否過高或者有什麼方法可以限制questions
列表中的實例數?
關於你給的查詢,它會返回什麼樣的對象? – Andna
列表
謝謝,它可能派上用場。 – Andna