java - 我正在为下表寻找合适的 JPQL 查询,以便它可以在 java 代码中工作,它不应该是 native 查询

标签 java spring-boot jpa jpql

下面是我无法进行正确的 JPQL 查询的表架构

  Mobile table     | hardware table       |  releases table
  --------------------------------------------------------------
  id pk            |   id  pk            | id  pk
  name varchar         size  varchar       launchdate varchar
  hardware_id fk   |   pdname varchar    | tally  varchar
  releases_id fk   |                     | 

 i have tried all below query's in my code but it all gives error for:
  //String qry="Select m.name,h.size,h.pdname from com.example.users.Mobile m, 
   com.example.users.entities.Hardware h where m.hardware_id=h.id ";


    //String qry="Select m from Mobile m inner join fetch m.hardware h where m.hardware_id=h.id";

    //String qry = "SELECT m FROM Mobile m JOIN m.hardware_id h WHERE m.hardware_id = h.id";

    String qry="select m.name from mobile m,hardware h where m.hardware_id=h.id";


   System.out.println("in entity manager Query is "+ qry);

    Query query = entityManager.createQuery(qry);

    return query.getResultList();

错误:org.hibernate.hql.internal.ast.QuerySyntaxException:移动设备未映射

 This is what i have in Mobile Entity

  @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name ="hardware_id",referencedColumnName = "id")
 private Hardware hardware;

 @OneToOne(cascade = CascadeType.ALL)
 @JoinColumn(name="releases_id",referencedColumnName = "id")
 private Releases releases;

最佳答案

您在@JoinColumn中指定的名称是数据库列而不是实体属性名称。 问题是您混合了属性和列名称。

查询:

“从移动设备中选择 m JOIN 硬件 h ON m.hardware.id = h.id”

关于java - 我正在为下表寻找合适的 JPQL 查询,以便它可以在 java 代码中工作,它不应该是 native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58508408/

相关文章:

javascript - Spring Boot REST - 所需的字符串参数不存在

java - Criteria API 未生成左外连接

Java JPA如何将一个实体实例与另一个实体的所有实例关联起来?

java - JPA 调用 MSSQL 存储过程返回重复记录

java - drawString 在当前窗口的屏幕截图上打印字符串

java - 使用@EnableAsync时Spring Boot不响应任何请求

spring-boot - 如何在 CosmosDB 中处理事务 - "All or nothing"概念

java - LazyInitializationException 与 @Any(fetch = FetchType.EAGER) 和 Spring-boot

java - 使用 keycloak UserStorageProvider SPI 的问题

java - ImageMagick 在 AWS Lambda 上抛出大图像转换错误