为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 JPA 中的两个表中获取数据

如何从 JPA 中的两个表中获取数据

慕森卡 2022-05-25 17:10:10
我无法使用以下查询从两个表中获取所有记录我已经尝试过了,但我只从一张桌子上得到结果。我想要两个表的结果,即 client_software_param_mapping 和 client_file_configuration 具有相同的 ClientId,这是从第三个 pojo(client_software_configuration) 到第一个和第二个 pojo 的外键。public Result showClientConfiguration() {EntityManagerFactory entityManagerFactory =                          Persistence.createEntityManagerFactory("defaultPU");  EntityManager entityManager = entityManagerFactory.createEntityManager();Query q=entityManager.  createQuery("SELECT c FROM client_software_param_mapping c JOIN fetch client_file_configuration f ON c.ClientId=f.ClientId");  List data =q.getResultList();  return ok(Json.toJson(data));}第一个pojo@Entitypublic class client_file_configuration {  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  private int id;  private String sourceFolder;  private String sourceFile;  private String processingFolder;  private String processingFile;  private String processedFolder;  private int intervalInMin;  private String readAfterDelay;  private String parserClass;  private String directoryMode;  private String fileMode;  private String actionMode;  private String type;  private String fileExpressionResolver;  @OneToOne  @JoinColumn(name = "ClientId")  private client_software_configuration clientSoftwareConfiguration;  public client_software_configuration getClientSoftwareConfiguration() {    return clientSoftwareConfiguration;  }  public void setClientSoftwareConfiguration(client_software_configuration clientSoftwareConfiguration) {    this.clientSoftwareConfiguration = clientSoftwareConfiguration;  }}      
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

这是正确的查询,因为它返回该 ClientId 处存在的第三个 pojo 的对象,因此它能够理解 ClientId 的类型。JPQL 从不使用表名和列名。它总是使用实体名称及其映射的字段/属性名称。所以在这里我采用了第三个 pojo 的对象,该对象具有 ClientId 字段。

从 client_file_configuration c,client_software_param_mapping p 中选择 c,p 其中 c.clientSoftwareConfiguration = p.clientSoftwareConfiguration


查看完整回答
反对 回复 2022-05-25
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信