如何将此条件代码转换为 CriteriaBuilder
How to convert this criteria code into CriteriaBuilder
我正在使用 3 个表设置休眠代码,我需要使用实体 class 来获取数据而不是使用任何查询。
我有标准代码,我正在使用 createAlias 但无法转换为 CriteriaBuilder
,因为休眠中的标准已弃用。
Criteria criteria = session.createCriteria(Star.class, "star");
criteria.createAlias("star.assignedTo", "assigned");
criteria.createAlias("assigned.team", "team");
criteria.add(Restrictions.eq("team.team_id", "12393"));
我想将此代码放入 CriteriaBuilder
。
类似于
CriteriaBuilder cb; // if I remember correctly en can be obrained either from EntityManager or from CriteriaQuery - its been a while
root=cb.from(Star.class);
teamJoin=root.join("assignedTo").join("team");
cb.eq(teamJoin.get("team_id"),yourid)) // thats the predicate
显然这是一种伪代码,因为我不知道你的 类 和 parth 属性,但你应该从这里得到这个想法。
请记住,这些连接是内部连接。每个连接都可以指定类型作为第二个参数 - 以防万一。
我正在使用 3 个表设置休眠代码,我需要使用实体 class 来获取数据而不是使用任何查询。
我有标准代码,我正在使用 createAlias 但无法转换为 CriteriaBuilder
,因为休眠中的标准已弃用。
Criteria criteria = session.createCriteria(Star.class, "star");
criteria.createAlias("star.assignedTo", "assigned");
criteria.createAlias("assigned.team", "team");
criteria.add(Restrictions.eq("team.team_id", "12393"));
我想将此代码放入 CriteriaBuilder
。
类似于
CriteriaBuilder cb; // if I remember correctly en can be obrained either from EntityManager or from CriteriaQuery - its been a while
root=cb.from(Star.class);
teamJoin=root.join("assignedTo").join("team");
cb.eq(teamJoin.get("team_id"),yourid)) // thats the predicate
显然这是一种伪代码,因为我不知道你的 类 和 parth 属性,但你应该从这里得到这个想法。
请记住,这些连接是内部连接。每个连接都可以指定类型作为第二个参数 - 以防万一。