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;

}

相关推荐
omnibots5 分钟前
瑞萨SDK编译linux时,make menuconfig报错
linux·服务器·前端·嵌入式硬件
Java 码农7 分钟前
linux shell 数组
linux·运维·服务器
大梦谁先觉i12 分钟前
Linux 磁盘空间“消失”之谜:文件已删,空间却不释放?
linux·运维·服务器
序属秋秋秋15 分钟前
《Linux系统编程之开发工具》【编译器 + 自动化构建器】
linux·运维·服务器·c语言·c++·自动化·编译器
带土141 分钟前
32. 文件IO (3) 文件缓冲区与同步机制
linux
打不了嗝 ᥬ᭄1 小时前
传输层协议UDP
linux·网络·网络协议·udp
小涂1 小时前
在Linux(deepin-community-25)下安装MongoDB
linux·运维·mongodb
洛克大航海2 小时前
Linux 中如何查看系统的位数
linux·ubuntu
艾莉丝努力练剑2 小时前
【Linux基础开发工具 (一)】详解Linux软件生态与包管理器:从yum / apt原理到镜像源实战
linux·运维·服务器·ubuntu·centos·1024程序员节
illuspas2 小时前
Ubuntu 24.04下编译支持ROCm加速的llama.cpp
linux·ubuntu·llama