CriteriaBuilder 联合查询

public List<String> findProdFactoryDesc(String prodtype, String prodName) {

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

CriteriaQuery<String> cq = cb.createQuery(String.class);

Root<Product> prt = cq.from(Product.class);

Root<Factory> fct =cq.from(Factory.class);

Predicate pType=cb.equal(prt.get("type"), prodtype);

Predicate pName=cb.equal(prt.get("name"),prodName);

Predicate prtAnd=cb.and(pType,pName);

Predicate facType=cb.equal(fct.get("prodType"), prodtype);

Predicate facName=cb.equal(fct.get("prodName"),prodName);

Predicate facAnd=cb.and(facType,facName);

Predicate prtFacAnd=cb.and(prtAnd,facAnd);

cq.where(prtFacAnd);

cq.multiselect(fct.get("ftyDesc")).distinct(true);

List<String> list = entityManager.createQuery(cq).getResultList();

return list;

}

相关推荐
有毒的教程4 小时前
Ubuntu 虚拟机磁盘空间不足完整解决教程
linux·运维·ubuntu
小樱花的樱花5 小时前
C++ new和delete用法详解
linux·开发语言·c++
APIshop5 小时前
Java获取京东商品详情接口(item_get)实战指南
java·linux·数据库
Cx330❀6 小时前
一文吃透Linux System V共享内存:原理+实操+避坑指南
大数据·linux·运维·服务器·人工智能
薛定谔的悦6 小时前
储能系统(EMS)核心架构解析:充放电控制、防逆流、防过载与 PID 调节
linux·运维·架构
22信通小白6 小时前
USRP初学者使用手册(基础配置及bug记录)——Windows+MATLAB
windows·matlab·bug
3GPP仿真实验室6 小时前
【MATLAB源码】CSI-RS:测量链路
linux·网络·matlab
胡斌附体6 小时前
Windows 打包方式与 exe图标说明
windows·electron·exe·package·build·nsis
阿 才7 小时前
WSL2 + TFTP + 网络启动(Linux开发板与WSL2建立网络连接)
linux·运维·网络
IMPYLH7 小时前
Linux 的 false 命令
linux·运维·服务器·bash