hibernate - 如何将此标准代码转换为 CriteriaBuilder
问题描述
我正在使用 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
.
解决方案
就像是
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
显然这是一种伪代码,因为我不知道你的类和部分属性,但你应该从这里得到这个想法。
请记住,这些联接是内部联接。每个连接都可以将类型指定为第二个参数 - 以防万一。
推荐阅读
- python - 访问 Google 表格中的数据作为对话流的数据库
- php - why replace ^m to "\n" or "" removed \t?
- node.js - Upload large files properly using AWS lambda and S3 (with existing limits)
- openebs - What are the supported backend filesystems (storage pools) for OpenEBS Jiva Volumes?
- javascript - 延迟“每个”方法
- python - Error in "from . import views" in urls.py while making migrations
- spring-batch - 如何在春季批处理中的另一个流中定义并行子流?
- imagemap - How to create image-map in jssor slider
- sd-card - Orange Pi 4g iot configuration and flash tool not working
- ubuntu - How to redirect non-www https port XXX to www https port XXX using nginx?