当前位置: 首页 > 知识库问答 >
问题:

如何将带有子查询的JPQL转换为与API等价的条件?

缪远航
2023-03-14

具有由5个实体组成的简单对象模型:

  1. 公司

公司与单个组织关联。(团体和俱乐部也与单个组织关联——它们是单向的,这意味着该组织不包含对其所有者的引用)。一个组织可能有0个或多个地址。

子查询可用于基于特定zipcode(地址的属性)访问公司对象。这里是一个JPQL查询,可以使用特定的zipcode访问这些公司。

@Query("选择p从公司p,组织组织(p.organization=org.id)和存在(选择1从地址ad zipcode=: zipcode和ad.organization=org.id)")

如何使用JPA标准API完成同样的事情?

共有1个答案

居飞扬
2023-03-14

这将选择使用内连接提供邮政编码的公司,这是你想要的吗?

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Company> cq = cb.createQuery(Company.class);
Root<Organization> root = cq.from(Organization.class);
Join<Organization, Address> adr = root.join("addresses");
cq.select(root.get("company"));
cq.where(cb.equal(adr.get("zipcode"), zipcode));

若该公司并没有财产,你们将无法通过该组织访问该公司。如果您的公司引用了Organization,则可以将单向映射添加到双向映射,并将以下代码添加到Organization类:

@OneToOne(mappedBy="organization") //Providing the name of property in Company 
private Company company;
 类似资料:
  • 我试图转换这个JPQL查询;

  • 是否可以将像这样的JPQL sting转换为对象,在该对象中我可以检查查询的根是否为(使用),或者以不同的方式执行相同的操作(不转换为)? JPA文档非常简单(例如,的类注释说“返回一个CriteriaBuilder的实例以创建CriteriaQuery对象。”-10或20个句子和更多的引用也无妨)。因此,它没有提到任何关于反转进程的内容。 将jpql连接查询转换为条件api以及如何将带有子查询的

  • 这是从下面提到的SQL查询创建的JPQl查询: “org.springframework.dao.invalidDataAccessResourceUsageException:无法提取ResultSet;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:无法提取ResultSet” 请问上述例外情况我能做些什么?

  • 我使用了cakephp Mysql到mongodb查询组件,即将Mysql查询转换到mongodb中,但是当查询有多个括号时代码停止工作,我还尝试将http://www.querymongo.com/site上的查询转换为相同的问题,

  • 我需要将这个sql查询转换为hibernate条件,请大家帮忙。 按名称顺序按应用描述限制3从设备组中选择名称,计数(*)为应用

  • 我只是想知道是否可以创建一个JQPL查询,该查询将对表进行处理,并选择所有记录,这些记录至少与我传递给查询的对象的y个属性中的x个ouf匹配。假设汽车对象有5个属性:maxSpeed、weight、Colory、power、type,然后我想查询一个数据库,以获得所有至少有2个属性与我传递给查询的汽车相同的汽车(不是实际的汽车--只是它的属性)。我找不到任何东西,所以我只是获取至少有一个属性匹配的