我将这个类映射为一个实体,我们称之为 Person。Person 与 Address 具有嵌入/组件关系。我在使用会返回地址对象的条件时遇到问题。我试过这个:
Criteria.createCriteria(Address.class)
哪个不起作用。我想我需要通过实体,但是我需要某种投影?
Criteria.createCriteria(Person.class).<<what goes here???>>
建议?
组件的生命周期由其所有者控制;它们不被视为关联。因此,您不能从查询中单独检索组件。但是,您可以在标准中使用它。
假设您的“地址”类被映射为“人员”中的“地址”,您可以执行以下操作:
Criteria.createCriteria(Person.class)
.add(Restrictions.eq("address.street", street));
这就是如何在休眠中检索或引用嵌入对象的属性。
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
Parent.class,"parent");
criteria.createAlias("embeddedObjectFieldName", "parent.embeddedObjectFieldName");
criteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("parent.propertyOne"))
.add(Projections.max("embeddedObjectFieldName.embeddedobjectproperty")));
希望以上澄清