有一个名为Parent的类,我有一个名为attributes和details的属性。一个父类可以有may属性,同样一个父类可以有很多细节。
class Parent{
@Id
@GeneratedValue
int parentId;
@OneToMany(mappedBy = "attributeComposite.parentId", cascade = CascadeType.ALL)
private Set<Attributes> attributes = new HashSet<>();
@OneToMany(mappedBy = "detailsComposite.parentId", cascade = CascadeType.ALL)
private Set<Details> attributes = new HashSet<>();
}
现在我输入了像父母一样的数据 2个属性和 4个细节。我想从条件查询中检索数据,其中parentId 1 。所以我这样查询
Criteria criteria = session.createCriteria(Parent.class);
criteria = criteria.add(Restrictions.idEq(1));
criteria = criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
tempMapping = (Parent) criteria.uniqueResult();
只返回父ID为 1 的父母一方。但是它有 4个属性而不是2和 4个细节。我认为它通过相互加入来加入子数据。那么如何获得完整的父实体数据而不改变儿童的任何内容呢?