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;

}

相关推荐
BothSavage12 分钟前
Ubuntu-8卡H20服务器升级nvidia驱动+cuda版本
linux·服务器·ubuntu·gpu·nvidia·cuda·nvcc
清风wxy15 分钟前
C语言基础数组作业(冒泡算法)
c语言·开发语言·数据结构·c++·windows·算法
---学无止境---17 分钟前
Linux中异常初始化和门设置函数的实现
linux
waves浪游19 分钟前
基础开发工具(上)
linux
信创工程师-小杨1 小时前
国产银河麒麟SP1桌面版本启动ssh服务报错解决办法
linux·服务器·ssh
小小小糖果人2 小时前
Linux云计算基础篇(27)-NFS网络文件系统
linux·网络·云计算
小小小糖果人2 小时前
Linux云计算基础篇(25)-DNS配置
linux·运维·云计算
TIANE-Kimmy2 小时前
VS code定时任务设置(mac os)
linux·运维·服务器
大聪明-PLUS2 小时前
嵌入式Linux简介—第二部分(共3部分)
linux·嵌入式·arm·smarc
panshiyangmaye2 小时前
RHCSA作业1
linux·运维·服务器