休止状態基準アプローチを使用して "John Smith"という名前のすべての従業員を取得するにはどうすればよいですか?値がエンティティのコレクションフィールドとプロパティが等しいhibernate criteriaクエリ
@Entity public class Name{ private long id; private String title private String first; private String last; private String suffix; @OneToMany(mappedby = "name") private Set<Employee> employees; }
@Entity public class Employee{ private long id; private int age; private Date dateStarted; private String highestEducationCompleted; @ManyToOne private Name name; }
私は次のことを試みたとサブクエリ処理にNullPointerException
を得ました。休止状態のエンジンがとにかくこのユースケースのために働くことはない、このアプローチを引き起こす可能性が突起サブクエリを必要とするように思える:
DetachedCriteria getNames = new DetachedCriteria(Name.class); getNames.add(Restrictions.and(Restrictions.eq("first", "John"), Restrictions.eq("last", "Smith"))); Criteria getEmployees = getSession().createCriteria(Employee.class); getEmployees.add(Subqueries.propertyIn("names", getNames); getEmployees.list();
これはHibernateの基準を使用して行わ取得するためのより良い方法は何ですか?