私たちのドメインモデルでは
@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;
そして、述語に一致QuestionSet
するコレクションに少なくとも1つの質問があるすべてのインスタンスを取得するクエリを書きたいと思いました。また、コレクションに一致した質問のみを持ちたいと思いました。questions
IN
questions
ここに私が書いたクエリがあります:
SELECT s FROM QuestionSet s JOIN s.questions q WHERE q IN (SELECT ar.question FROM AppointedRepetition ar WHERE ar.date < :tomorrow)
date はDateTime
joda-time ライブラリのタイプで、次のように設定します。
query.setParameter("tomorrow", DateTime.now().plusDays(1))
これは部分的に機能するようになりQuestionSets
ました。適切に一致したものだけを取得していますが、たとえばIN
.
私の期待は高すぎますか、questions
それともリスト内のインスタンスの数を制限する方法はありますか?