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;

}

相关推荐
Codefengfeng4 小时前
分辨压缩包的真加密与伪加密
linux·运维·网络
Never_Satisfied4 小时前
在c#中,使用windows自带功能将文件夹打包为ZIP
开发语言·windows·c#
暴力求解4 小时前
Linux---进程(五)进程调度
linux·运维·服务器
楼田莉子4 小时前
C++项目:日志&&线程池
linux·c++·学习·visual studio code
wsad05324 小时前
Linux 用户和组管理完整指南(中英文参数对照)
linux·运维·服务器
S-码农5 小时前
Linux进程通讯——共享内存
linux
EmbedLinX5 小时前
嵌入式Linux之U-Boot
linux·服务器·笔记·学习
程序设计实验室5 小时前
从挖矿木马入侵到 Docker Rootless 加固,我的服务器安全复盘
linux·docker
雷电法拉珑6 小时前
财务数据批量采集
linux·前端·python
Roc.Chang7 小时前
Vite 启动报错:listen EACCES: permission denied 0.0.0.0:80 解决方案
linux·前端·vue·vite