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

返回实体 A 和实体 B 的连接,并在没有 JQL/HQL 的Spring JPA 中存储在实体 C 中

宰父深
2023-03-14

我有以下实体:

@Entity
public class Employee {
       @Column
       private String employeeName;

       @Column
       private Integer employeeId;

       @OnetoMany
       private Set<Account> accounts;
}

@Entity
public class Account {
       @Column
       private String bankName;

       @Column
       private Integer accountNumber; 
}


public class EmployeeAccountRecords {
       private String employeeName;
       private Integer accountNumber;
}

我想获得员工和帐户连接的分页结果,并将值存储在员工帐户记录类的对象中。此外,我还想将排序/过滤器传递给实现它的存储库。

这能在不用JPQL/HQL编写查询的情况下完成吗,可能使用JPA规范等,任何其他组件?

我使用Spring数据JPA和Hibernate。

非常感谢。

PS:结果对象仅使用联接值中结果集的子集。

共有1个答案

郑西岭
2023-03-14

在不使用JPQL/HQL的情况下,我看到的另外两个选项是Spring Data JPA规范和QueryDsl。

根据链接支持对采用动态查询类型规范或Querydsl谓词的查询方法的预测以及在JPA存储库中添加对QueryDSL预测的支持,它们还不支持预测。

但是它们确实有链接,显示了如何在querydsl http://stackoverflow.com/questions/18300465/spring-data-and-querydsl-to-fetch-subset-of-columns-using-bean-constructor-proje 中扩展存储库并支持这些功能,而另一个是带有投影的规范,可能会有所帮助。

 类似资料:
  • 我正试图让我的头绕过DDD,但我卡住了。这就是我如何设置我的项目: 然后,我继续实现UserRepository,这里我遇到了另一个问题:UserRepository接口需要域用户模型,当我试图在DAL中实现接口时,我需要使用域用户模型来实现它,这导致DAO是为域模型而不是DAL模型创建的,这没有任何意义。唯一能修正的就是在域层中引用DAL,这是错误的。 有人能解释一下我在DDD中遗漏了什么吗?

  • 我在删除联接表中引用的实体时遇到问题。以下是三个链接的enitie。 当我尝试使用CrudRepository从来宾表中删除来宾时,它会给我这个错误。 错误:表“guest”上的更新或删除违反了表“guest\u group\u join”上的外键约束“FKKOUGVMCU860MOUACR1SHJXY”。键(id)=(4)仍然从表“guest\u group\u join”中引用。 有人能帮忙吗

  • null 这似乎意味着我不像使用简单的“From customer”查询那样获取customer实体的实例。如果是这种情况,如何返回客户实体?如果没有,那我做错了什么?

  • 我想使用SpringDataRepository接口来执行本机查询——我认为这种方式最简单,因为复杂性较低。 但是当扩展接口时。

  • 我尝试了以下代码,但出现了错误-spring web ResponseEntity无法序列化。 org.springframework.data.redis.serializer.SerializationException:无法序列化;嵌套异常org.springframework.core.serializer.support.SerializationFailedException:无法使用

  • 我的应用程序中有一个Book model类,它如下所示: 返回NULL。为什么?