如何根据延迟加载实体的属性进行过滤
How to filter based on properties of lazy load entities
我有一个 table 成员作为延迟加载实体用户。
Member User
------ ----
id id
User name
DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m");
dc.setFetchMode("user",FetchMode.JOIN);
dc.add(Restrictions.like("user.name", "alpha", MatchMode.ANYWHERE));
Criteria criteria = dc.getExecutableCriteria(session.getSession());
List<Membership> list = criteria.list();
在成员 table.
中抛出休眠异常无法解析 属性 user.name
如何使用延迟加载关联实体的属性限制?
您需要创建一个别名来访问用户的属性。更改为以下内容以使其工作:
DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m");
dc.createAlias("user", "u");
dc.add(Restrictions.like("u.name", "alpha", MatchMode.ANYWHERE));
Criteria criteria = dc.getExecutableCriteria(session.getSession());
List<Membership> list = criteria.list();
我有一个 table 成员作为延迟加载实体用户。
Member User
------ ----
id id
User name
DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m");
dc.setFetchMode("user",FetchMode.JOIN);
dc.add(Restrictions.like("user.name", "alpha", MatchMode.ANYWHERE));
Criteria criteria = dc.getExecutableCriteria(session.getSession());
List<Membership> list = criteria.list();
在成员 table.
中抛出休眠异常无法解析 属性 user.name如何使用延迟加载关联实体的属性限制?
您需要创建一个别名来访问用户的属性。更改为以下内容以使其工作:
DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m");
dc.createAlias("user", "u");
dc.add(Restrictions.like("u.name", "alpha", MatchMode.ANYWHERE));
Criteria criteria = dc.getExecutableCriteria(session.getSession());
List<Membership> list = criteria.list();