【发布时间】:2012-10-08 07:07:03
【问题描述】:
我有这样的一对一关系
父母
@JsonAutoDetect
@Entity
@Table(name = "Parent")
public class Parent{
private Integer id;
private Child child;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column (name="idparent")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parent")
@JoinColumn(name="idchild", nullable=true)
public Child getChild() {
return child;
}
public void setChild(Child child) {
child.setParent(this);
this.child = child;
}
}
和孩子
@JsonAutoDetect
@Entity
@Table(name="Child")
public class Child{
private Integer id;
private Parent parent;
@Id
@GeneratedValue(generator = "foreign")
@GenericGenerator(name = "foreign", strategy = "foreign", parameters = { @Parameter(name = "property", value = "parent") })
@Column (name = "idchild")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@OneToOne(fetch = FetchType.LAZY, optional = true)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE })
@PrimaryKeyJoinColumn
@JsonIgnore
public Parent getParent() {
return parent;
}
public void setParent(Parent parent) {
this.parent= parent;
}
}
我想创建标准来返回有孩子 isNotNull 的父母,我尝试了一些想法
Criteria criteria = session.createCriteria(Parent.class);
criteria.add(Restrictions.isNotNull("child"));
但不行,你能帮我举个例子吗?谢谢
【问题讨论】:
-
只是出于好奇,您使用 Parent & Child。父母可以有多个孩子吗?如果是这样,您应该在关系的每一端使用 OneToMany 和 ManyToOne 并在标准 API / jpql 中“存在”。
标签: hibernate nhibernate-mapping one-to-one hibernate-criteria