Spring Boot 列的JPA查询,列具有@嵌入对象

e4eetjau  于 2022-11-05  发布在  Spring
关注(0)|答案(1)|浏览(135)

我正在编写JPA查询,并且在该实体旁边有一个实体,我有一个@嵌入式对象,如果我想根据@嵌入式对象中的字段检索数据,我可以编写JPA查询而不是命名查询吗?
以下是“我的对象”结构:

public class MyEntity {
      private String field1;
      private String field2;
      @Embedded
      private InnerEntity;
    }  

  @Embeddable
  public class InnerEntity {
   private String field3;
   private String field4
}

现在我必须编写一个带有field 3的JPA查询,就像我们直接使用字段名(findByField 1(value))一样;
有任何帮助吗

a2mppw5e

a2mppw5e1#

试试看:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createTupleQuery();
Root<MyEntity> root = cq.from(MyEntity.class);

Predicate p = cb.equal(root.get("InnerEntity").get("field3"), 100);

cq.multiselect(root.get("field1").alias("field1"),                
             root.get("InnerEntity").get("field3").alias("field3Alias));

List<Tuple> tt = em.createQuery(cq).getResultList();

相关问题