0

私は休止状態に取り組んでいます。次のような @Entity があります。

エンティティ A:

int category; //1 2 or 3

List<B> B_list;

エンティティ B:

String word;

今、私がやりたいことは、A のカテゴリと単語が与えられ、カテゴリに一致するすべての A を返したいのですが、その B_list には、パラメータ word と等しい単語を持つ B があります。

これは私が持っているものです:

public List<A> getAs(int category,String word){
Criteria crit = session.createCriteria(A.class);
    crit.add(Restrictions.eq("category",category));

        crit.add(Restrictions.//something to look for B);

        List<A> cats = crit.list();
        return cats;
 }

私は自分のセッションを持っていて、すべて順調です:)ありがとう!

4

1 に答える 1

0

条件クエリは使用していませんが、hql または jpql の場合は、B and and 式に結合するだけです。すなわち

From A a join a.b_list b where a.category = : category and a.word = :word and b.<field name> = :word

つまり、b_list で B と結合する必要があり、そのフィールドを参照できます。

それがあなたを正しい方向に向けることを願っています。

編集: JPA 2またはHibernateを使用して、条件クエリを使用して結合を行うことができます

于 2013-01-24T06:55:57.833 に答える