0

Hibernateクエリまたは基準で、この単純な作業選択を記述する方法を教えてください

SELECT * FROM `call` AS c JOIN `event_customer` AS e ON c.customer_id = e.customer_id WHERE e.dgdelete = FALSE AND c.eventruletype_id = 1 AND e.event_id = 74 AND c.callactivity_id = 3 AND e.calltype = 2

すでに多くのアドバイスを見つけましたが、まだ何も役に立ちませんでした。

それは休止状態のマッピングで何かでしょうか?

ありがとうございました。

PS:これは機能していません

query = session.createQuery("select c from " + Call.class.getSimpleName()+ " as c " + EventCustomer.class.getSimpleName()+ " as e where e.customer_id = c.customer_id and e.event_id = 74"); 

また、これは機能しません

 query = session.createQuery("select c from " + Call.class.getSimpleName()+ " as c join " + EventCustomer.class.getSimpleName()+ " as e where e.customer_id = c.customer_id and e.event_id = 74");

そしてこれも

 query = session.createQuery("select c from " + Call.class.getSimpleName()+ " as c join " + EventCustomer.class.getSimpleName()+ " as e on e.customer_id = c.customer_id  where  e.event_id = 74"); 

そしてこれも

query = session.createQuery("select c from " + Call.class.getSimpleName()+ " as c left join " + EventCustomer.class.getSimpleName()+ " as e on e.customer_id = c.customer_id  where  e.event_id = 74");

場合によっては、このエラーが発生します

4

2 に答える 2

2

連結せず、代わりに基準を使用します。

Criteria crit = session.createCriteria(Call.class, "c")
    .createCriteria("eventCustomerDto","e")
    .add(Restrictions.eq("event_id",74));
List<Call> list=crit.list();

コードにはタイプミスがあるかもしれませんが、それがアイデアです。また、私の例では、Call と EventCustomer の間の Call hibernate マッピングに 1 対多の関係があると仮定しました。

于 2013-05-07T15:56:13.100 に答える
0

これはうまくいくはずです。(JOIN をコンマに置き換えます)

 Query query = session.createQuery("select c from " + Call.class.getSimpleName() + " as c , " + EventCustomer.class.getSimpleName() + " as e where e.customer.id = c.customer.id and c.event.id = 74");
于 2013-05-09T10:01:26.390 に答える