lazy属性がfalseに設定された親子関係があるため、クエリで親クラスを取得すると、その子も取得します。
通常は、親子のすべてをロードすることが望ましいですが、あるケースでは、これを行う必要はありません。
lazy=false 関係を変更せずに、親を取得するときに子をフェッチしないようにする方法はありますか?
lazy属性がfalseに設定された親子関係があるため、クエリで親クラスを取得すると、その子も取得します。
通常は、親子のすべてをロードすることが望ましいですが、あるケースでは、これを行う必要はありません。
lazy=false 関係を変更せずに、親を取得するときに子をフェッチしないようにする方法はありますか?
いいえ、できません。アソシエーションをフェッチしてはならないケースが1つしかない場合にできる唯一のことは、エンティティの代わりにDTOを使用し、プロジェクションを使用して必要なものだけを取得することです。
String hql = "select firstName, lastName from User u where ...";
List<Object[]> rows = session.createQuery(hql).list();
List<UserDTO> users = new ArrayList<UserDTO>(rows.size());
for (Object[] row : rows) {
users.add(new User((String) row[0], (String) row[1]));
}
return users;