gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:36:54 24 4
gpt4 key购买 nike

我有一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com