java - 未找到 JPA 内连接路径且未找到属性

标签 java sql jpa

我有一个 JPA 类型查询连接问题。当我使用以下代码时

    SELECT cve from CubeValuesEntity cve inner join CubeConfigEntity cce
    on cve.cubeConfigId=cce.cubeConfigId 

我收到一个 QuerySyntaxException:需要加入的路径!我相信该错误的修复如下

  SELECT cve from CubeValuesEntity cve inner join cve.CubeConfigEntity cce 
  on cve.cubeConfigId=cce.cubeConfigId

但是我现在得到 QueryException: 无法解析属性: CubeConfigEntity 这根本没有任何意义。

这是我使用的实际java代码:

TypedQuery<CubeValuesEntity> query = em.createQuery(
   "SELECT cve from CubeValuesEntity cve inner join cve.CubeConfigEntity cce on cve.cubeConfigId=cce.cubeConfigId where " + "cce.cubeType = :cubeType 
   and cce.name = :name and cve.axisType = :axisType", CubeValuesEntity.class)
   .setParameter("cubeType", cubeType).setParameter("name", name).setParameter("axisType", axisType);

   return query.getResultList();

这是我的实体

    public class CubeValuesEntity extends AbstractDomainObject {
private static final long serialVersionUID = 1L;

private int cubeValueId;
private int cubeConfigId;
private String axisType;
private int axisNumber;
private String axisLabel;
private BigDecimal axisFactor;


public class CubeConfigEntity extends AbstractDomainObject {
private int cubeConfigId;
private String cubeType;
private String name;
private String yAxisName;
private Integer yAxisCubeSize;
private String xAxisName;
private Integer xAxisCubeSize;
private String reductionType;
private BigDecimal midLowRange;
private BigDecimal midHighRange;

感谢您的帮助。

最佳答案

我相信您在这里混合了 JQL 和 SQL。

假设 CubeValuesEntity 和 CubeConfigEntity 之间存在 XToOne 关系,即名为“cubeConfig”的属性:

  • 忘记“on”关键字 - 那是 SQL,它由点分表达式及其映射暗示
  • “无法解析属性:CubeConfigEntity”似乎合乎逻辑,因为这是实体名称,而不是属性

所以,只需尝试一下:

"SELECT cv from CubeValuesEntity cv inner join cv.cubeConfig cc where..."

br, 延斯

关于java - 未找到 JPA 内连接路径且未找到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34645626/

相关文章:

java - 线程 "main"java.lang.NoSuchMethodException : after I add ArrayList 中的异常

java - 可选的异常捕获

sql - 如何从单个表中选择数据的结果集,其中一列来自不同表中列的 SUM?

hibernate - Spring Boot JPA 和 JDBC 可以共享相同的数据源/连接吗?

java反编译

java - jBoss 作为 Maven 插件 - 无法连接到本地主机 :9990

mysql - mysql中Having子句中的Case语句

MySQL 错误 1349 我缺少什么?

java - Spring 测试属性文件被主属性文件覆盖

java - 删除与另一个对象有manyTomany关系的对象