2

次のクラス/テーブルがあります:

ユーザー

  • ID
  • 名前
  • works // 作品リスト

仕事

  • ID
  • 名前
  • ユーザーID

そして、次のコード:

Criteria criteria = session.createCriteria("User"); 
criteria.list();

(id=user_id によって) 関連付けられたオブジェクトUserのリストを含む のリストを返します。Work

このクエリを変更して、同じリストを取得するにはどうすればよいですUserか?WorkWork

4

1 に答える 1

2

可能ですが、ロードされたユーザーはデータベースの実際の状態を反映しないため、賢明ではありません。作品のリストには、一部の作品だけでなく、すべての作品が含まれている必要があります。それらを変更すると、データベースで不要な削除が行われる可能性があります。

あなたが興味を持っている作品を、関連付けられた user と共にロードしたいと思います:

Criteria c = session.createCriteria(Work.class, "work");
c.createAlias("work.user", "user");
c.setFetchMode("work.user", FetchMode.JOIN);
c.add(Restrictions.ne("work.name", "fck"));
于 2011-10-11T21:40:55.650 に答える