有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是由:org引起的。冬眠QueryException:无法解析属性:

我犯这个错误的原因很奇怪。我将按时间顺序解释错误,以便于理解

这是我的JPA查询,在我添加po之前它一直工作得很好。客户识别号

@Query("SELECT NEW com.htd.domain.ShopOrder(po.id, po.po_number, "
            + "po.due_date, po.customer_id, po_part.id,po_part.part_quantity, "
            + "part.id, part.part_number, part.part_description, "
            + "part.plasma_hrs_per_part, part.grind_hrs_per_part, "
            + "part.mill_hrs_per_part, part.brakepress_hrs_per_part) "
            + "FROM Po po "
            + "JOIN po.partList po_part "
            + "JOIN po_part.part part "
            + "where po.id = ?1")
    List<ShopOrder> getShopOrder(Long id);

ShopOrder构造函数

 public ShopOrder(long po_id, String po_number, LocalDate po_due_date, BigInteger customer_id,
                     long po_part_id, int part_quantity, long part_id,
                     String part_number, String part_decription, BigDecimal plasma_hrs,
                     BigDecimal grind_hours, BigDecimal mill_hrs,
                     BigDecimal breakpress_hrs) {

        this.po_id = po_id;
        this.po_number = po_number;
        this.po_due_date = po_due_date;
        this.po_part_id = po_part_id;
        this.part_quantity = part_quantity;
        this.part_id = part_id;
        this.part_number = part_number;
        this.part_decription = part_decription;
        this.plasma_hrs = plasma_hrs;
        this.grind_hours = grind_hours;
        this.mill_hrs = mill_hrs;
        this.breakpress_hrs = breakpress_hrs;
        this.customer_id = customer_id;

    }

数据库表的图片 T_PO

错误:

Caused by: org.hibernate.QueryException: could not resolve property: customer_id of: com.htd.domain.Po
    at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:77)
    at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1978)
    at org.hibernate.hql.internal.ast.tree.FromElementType.getPropertyType(FromElementType.java:367)
    at org.hibernate.hql.internal.ast.tree.FromElement.getPropertyType(FromElement.java:500)
    at org.hibernate.hql.internal.ast.tree.DotNode.getDataType(DotNode.java:652)
    at org.hibernate.hql.internal.ast.tree.DotNode.prepareLhs(DotNode.java:275)
    at org.hibernate.hql.internal.ast.tree.DotNode.resolve(DotNode.java:219)
    at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:126)
    at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:121)
    at org.hibernate.hql.internal.ast.tree.DotNode.resolveSelectExpression(DotNode.java:714)
    at org.hibernate.hql.internal.ast.HqlSqlWalker.resolveSelectExpression(HqlSqlWalker.java:958)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:2257)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.constructor(HqlSqlBaseWalker.java:2607)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:2324)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:2194)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1476)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:573)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
    ... 54 more

我很困惑为什么我调用的表中的一列不被识别。我已经玩了一段时间了,但感觉像是在追我的尾巴

----更新-------

 public ShopOrder(long po_id, String po_number, LocalDate po_due_date, long customer_id,
                     long po_part_id, int part_quantity, long part_id,
                     String part_number, String part_decription, BigDecimal plasma_hrs,
                     BigDecimal grind_hours, BigDecimal mill_hrs,
                     BigDecimal breakpress_hrs) {

我注意到表中的其他BigInt变量在构造函数中很长。因此,我将customer_id改为Long,但仍然得到相同的错误


共 (1) 个答案

  1. # 1 楼答案

    实体(Po类)中没有customer_id属性。 你应该有这样的东西:

    @Entity
    public class Po {
        // ...
    
        @Basic
        long customer_id;
    
        // ...
    }