0
hibernateを使用する1対多マッピングで1つの問題があります。1対多のデタッチ子テーブルに基づくCriteria親テーブルのフェッチ
私は2つのクラス、人とアドレスを持っています。人はアドレス(1対多)によってマッピングされます 私はすべての人を取得したいと思いますAddress = "xxxx"; DetachedCriteriaを使用してこのクエリを準備する方法。私は私のDAOクラスからコードを追加しました。それを完了するために私を助けてください。
Person.java
@Entity
@Table(name="PERSON")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="personId")
private int id;
@Column(name="personName")
private String name;
@OneToMany(cascade =CascadeType.ALL,fetch = FetchType.LAZY)
@JoinColumn(name="personId")
private Set <Address> addresses;
}
Address.java
@Entity
@Table(name = "ADDRESS")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "addressId")
private int id;
@Column(name = "address",nullable=false)
private String address;
@ManyToOne(cascade =CascadeType.ALL)
@JoinColumn(name="personId",nullable=false)
private Person person;
}
マイDAO
DetachedCriteria c = DetachedCriteria.forClass(Person.class);
List<Person> persnList =null;
/*here i want add some restriction for
fetch all person whose address = "abcd"
here address is collection. how to set restriction in it ?.
*/
persnList = getHibernateTemplate().findByCriteria(c);
System.out.println(persnList.size());
選択*人からどこAddress.address = "XXXX";これを実装する方法DetachedCriteria?