gpt4 book ai didi

java - HQL QuerySyntaxException : unexpected token 错误

转载 作者:行者123 更新时间:2023-11-29 04:23:32 25 4
gpt4 key购买 nike

我查询了 3 个具有 HQL 类的表。存在一些一对多的关系。

我的数据库或我的实体类都没有问题..

我有一些 hibernate DAO 类查询,除了这个以外其他都很好..

jasperreport 类 reportserviceimpl,

我遇到这样的错误

Exception in thread "AWT-EventQueue-0" org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ase near line 1, column 84 [select s.product.name as productName, sum(s.quantity) as quantity, s.sales.noTable ase noTable, s.sales.member as member, s.price as price, sum(s.subtotal) as subTotal from restodeskapp.model.SalesDetail s where s.sales.id = :id group by s.product.name order by s.product.name] at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31) at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24) at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59) at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77) at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)

这是我的 HBL 代码

List<SalesReport> salesReports =
sessionFactory.getCurrentSession()
.createQuery("select s.product.name as productName,"
+ " sum(s.quantity) as quantity,"
+ " s.sales.noTable as noTable,"
+ " s.sales.member as member,"
+ " s.price as price,"
+ " sum(s.subtotal) as subTotal from SalesDetail s "
+ " where s.sales.id = :id "
+ " group by s.product.name order by s.product.name")
.setParameter("id", id)
.setResultTransformer(
Transformers.aliasToBean(SalesReport.class))
.list();

这是我的销售报告

public class SalesReport {
private String productName;
private String member;
private int noTable;
private Long quantity;
private BigDecimal subTotal;
private BigDecimal price;
//setter getter
}

这里是我的销售

public class Sales implements Serializable{

@Id @GeneratedValue
@Column(name="ID")
private Long id;

@Column(name="NO_TABLE", nullable=false)
private int noTable;

@Temporal(TemporalType.TIMESTAMP)
@Column(name="SALES_DATE",nullable=false)
private Date salesDate;

@OneToMany(mappedBy="sales",cascade=CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<SalesDetail> salesDetails;

@Column(name="TOTAL_SALES",precision=18,scale=0,nullable=false)
private BigDecimal totalSales;

@ManyToOne
@JoinColumn(name="Member_ID")
private Member member;
//setter getter
}

这里是我的销售详情

public class SalesDetail implements Serializable{

@Id @GeneratedValue
@Column(name="ID")
private Long id;

@ManyToOne
@JoinColumn(name="PRODUCT_ID",nullable=false)
private Product product;

@Column(name="QUANTITY",nullable=false)
private Integer quantity;

@Column(name="PRICE",nullable=false,precision=18,scale=0)
private BigDecimal price;

@Column(name="SUBTOTAL",nullable=false,precision=18,scale=0)
private BigDecimal subtotal = BigDecimal.ZERO;

@ManyToOne
@JoinColumn(name="SALES_ID",nullable=false)
private Sales sales;
}

这是我的产品

public class Product implements Serializable {

@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
private Long id;
@Column(name="NAME",unique=true,length=200)
private String name;
@Column(name="DESCRIPTION",unique=false,length=500)
private String description;
@Column(name="PRICE",unique=false,length=200)
private BigDecimal harga;
@Column(name="note",unique=false,length=500)
private String note;
@Enumerated(EnumType.STRING)
@Column(name="STATUS",length=20)
private EnumStatus status;
@Enumerated(EnumType.STRING)
@Column(name="TYPE",length=20)
private EnumJenisMakanan type;
@Lob
@Column(name="PICTURE")
private byte[] picture;

}

我真的不知道哪里错了..请帮助..

谢谢你..最好的问候:)

最佳答案

您的异常显示 unexpected token: ase near line 1, column 84 错误进一步表明您已在此处使用它 -> s.sales.noTable ase noTable

因此,寻找 ase,您的 HBL 代码没有此错误。我想说的是,搜索您的代码库并尝试找出您在其他什么地方有此错字指定 s.sales.noTable ase noTable。您将 s.sales.noTable 改成 noTable -> s.sales.noTable as noTable 错误应该消失。

有可能您修复了它但仍然面临相同的错误。在这种情况下,请尝试清理缓存、删除工作和临时文件夹并重复构建和部署。

看看问题是否消失。

关于java - HQL QuerySyntaxException : unexpected token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764433/

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