使用Hibernate标准获取子类

时间:2016-05-08 13:04:37

标签: java hibernate hibernate-mapping hibernate-criteria

我正在尝试使用Hibernae获取'对象'(这是我的数据库中的一行)。 “对象”在数据库中通过“Nofitication”引用。 “通知”包含一个引用“对象”的行。

我的问题是该对象也是子类,我想得到完整的子类,而我只是得到了懒惰的对象。 这是我的代码:

public ScrollableResults getScrollableObjects(Transaction transaction, NotificationAttributes notificationAttributes) {
    Criteria criteria = transaction.getSession().createCriteria(Notification.class);
    criteria.setProjection(Projections.property("object"));
    criteria.add(Property.forName("name").eq(notificationAttributes.getName()));
    criteria.createAlias("object", "object",     CriteriaSpecification.LEFT_JOIN);
    ScrollableResults scroll = criteria.setFetchSize(1000).scroll(ScrollMode.FORWARD_ONLY);
    return scroll;
}

有关如何解决的任何建议?感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用此示例

Criteria person = session.getCurrentSession().createCriteria(Person.class).createAlias("personId", "personId");

person.add(Restrictions.disjunction().add(Restrictions.ilike("PersonFirstname",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Jacket",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Color",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Size",Search,MatchMode.ANYWHERE)));