7

我将这个类映射为一个实体,我们称之为 Person。Person 与 Address 具有嵌入/组件关系。我在使用会返回地址对象的条件时遇到问题。我试过这个:

Criteria.createCriteria(Address.class)

哪个不起作用。我想我需要通过实体,但是我需要某种投影?

Criteria.createCriteria(Person.class).<<what goes here???>>

建议?

4

2 回答 2

6

组件的生命周期由其所有者控制;它们不被视为关联。因此,您不能从查询中单独检索组件。但是,您可以在标准中使用它。

假设您的“地址”类被映射为“人员”中的“地址”,您可以执行以下操作:

Criteria.createCriteria(Person.class)
 .add(Restrictions.eq("address.street", street));
于 2009-09-24T16:19:51.070 回答
0

这就是如何在休眠中检索或引用嵌入对象的属性。

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")));

希望以上澄清

于 2013-09-12T15:44:01.943 回答