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;

}

相关推荐
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao3 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3105 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode5 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
A小辣椒7 天前
TShark:Wireshark CLI 功能
linux
A小辣椒7 天前
TShark:基础知识
linux
AlfredZhao7 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao7 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi