Java JPA CriteriaBuilder如何创建类似join+的查询
我有一个SQL查询: 选择s.*,p.name,p.code 从'stock'开始 在s.product_id=p.id上左连接产品p 其中p.name如%q% 我需要使用criteriabuilder创建查询 我是这样开始的: CriteriaBuilder cb=em.getCriteriaBuilder; CriteriaQuery cq=cb.createQueryLong.class; 根库存=cq.fromStock.class; 路径路径=stock.getfilter.getKey//我这里有个错误 字符串likeValue=通配符+值+通配符; 谓词filterCondition=cb.condition; filterCondition=cb.and filterCondition,cb.likepath,likeValue; 请帮忙,如何做得更好 选择不明确。在SQL中选择s.*、p.name、p.code,但在criteria中,您希望使用很长的时间 您的左连接不必被左连接 在标准中,您根本没有加入 一般建议您使用元模型 我想你想要所有的股票,其中至少有一种产品的名称像%value% 如果我的假设是正确的:Java JPA CriteriaBuilder如何创建类似join+的查询,java,mysql,jpa,orm,criteria,Java,Mysql,Jpa,Orm,Criteria,我有一个SQL查询: 选择s.*,p.name,p.code 从'stock'开始 在s.product_id=p.id上左连接产品p 其中p.name如%q% 我需要使用criteriabuilder创建查询 我是这样开始的: CriteriaBuilder cb=em.getCriteriaBuilder; CriteriaQuery cq=cb.createQueryLong.class; 根库存=cq.fromStock.class; 路径路径=stock.getfilter.getKe
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Stock> cq = cb.createQuery(Stock.class);
Root<Stock> stock = cq.from(Stock.class);
Join<Stock, Product> product = stock.join(Stock_.products);
cq.select(stock);
cq.distinct(true);
cq.where(cb.like(product.get(Product_.name), "%" + value + "%");
return em.createQuery(cq).getResultList();
选择不明确。在SQL中选择s.*、p.name、p.code,但在criteria中,您希望使用很长的时间
您的左连接不必被左连接
在标准中,您根本没有加入
一般建议您使用元模型
我想你想要所有的股票,其中至少有一种产品的名称像%value%
如果我的假设是正确的:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Stock> cq = cb.createQuery(Stock.class);
Root<Stock> stock = cq.from(Stock.class);
Join<Stock, Product> product = stock.join(Stock_.products);
cq.select(stock);
cq.distinct(true);
cq.where(cb.like(product.get(Product_.name), "%" + value + "%");
return em.createQuery(cq).getResultList();