我正在使用3个表设置休眠代码,在这里我需要使用实体类来获取数据,而不是使用任何查询。
我在使用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
中。
答案 0 :(得分:0)
类似
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属性一无所知,但您应该从这里了解一下。
请记住,那些联接是内部联接。每个连接都可以将第二个arg指定为类型-以防万一。