gpt4 book ai didi

java - 获取 QuerySyntaxException : unexpected token

转载 作者:行者123 更新时间:2023-11-29 09:53:00 25 4
gpt4 key购买 nike

是的,我知道有一些关于此错误的帖子,但没有一个对我有帮助。我的 hql 查询出现此错误:

@SuppressWarnings("unchecked")
@Override
public List<StaffRequest> getStaffLeaveRequest(String userID, Date startDate, Date endDate)
{
Session currentSession = sessionFactory.getCurrentSession();

List<StaffRequest> results =
currentSession.createQuery("select new com.timesheet_Webservice.CustomEnity.StaffRequest(lr.leave_ID, lr.leave_Employee, concat(s.staff_First_Name, ' ', s.staff_Last_Name), "
+ "(lr.leave_Days*8.5), lr.leave_Comments, '1805', concat(pro.project_Pastel_Prefix, ' - ', pro.project_Description), lr.leave_Start, lr.leave_End, lr.leave_IsApproved, "
+ "(select lt.leaveType_Description from LeaveType lt where lt.leaveType_ID = lr.leave_Type)) "
+ "from Staff s, Leave lr, Project pro "
+ "where lr.leave_Employee, = s.staff_Code and pro.project_Code = 1805 and lr.leave_Approved = :userID, and lr.leave_IsApproved = 0 and s.staff_IsEmployee <> 0 "
+ "and lr.leave_Start between :startDate and :endDate "
+ "order by concat(s.staff_First_Name, ' ', s.staff_Last_Name)")
.setParameter("userID",userID).setParameter("startDate", startDate).setParameter("endDate", endDate).getResultList();

return results;
}

我不知道问题出在哪里。我尝试仔细地重新输入查询,尝试遵循一些有效的类似查询的格式,但仍然一无所获。请帮忙

更新:经过@Joakim Danielson 修正后的完整错误如下

{"status":400,"message":"org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected token: , near line 1, column 665 [select new com.timesheet_Webservice.CustomEnity.StaffRequest(lr.leave_ID, lr.leave_Employee, concat(s.staff_First_Name, ' ', s.staff_Last_Name),
(lr.leave_Days*8.5), lr.leave_Comments, '1805', concat(pro.project_Pastel_Prefix, ' - ', pro.project_Description),
lr.leave_Start, lr.leave_End, lr.leave_IsApproved, (select lt.leaveType_Description from com.timesheet_Webservice.entity.LeaveType lt where lt.leaveType_ID = lr.leave_Type)) from com.timesheet_Webservice.entity.Staff s,
com.timesheet_Webservice.entity.Leave lr, com.timesheet_Webservice.entity.Project pro where lr.leave_Employee = s.staff_Code and pro.project_Code = 1805 and lr.leave_Approved = :userID,
and lr.leave_IsApproved = 0 and s.staff_IsEmployee <> 0 and lr.leave_Start between :startDate and :endDate order by concat(s.staff_First_Name, ' ', s.staff_Last_Name)]","timeStamp":1548935385459}

最佳答案

“其中lr.leave_Employee, = s.staff_Code”,删除逗号

where lr.leave_Employee = s.staff_Code

“lr.leave_Approved = :userID,”中有第二个逗号错误

lr.leave_Approved = :userID

请注意,您的错误消息中有 unexpected token: , near line 1, column 665因此,如果将错误消息中打印的查询粘贴到文本编辑器中并删除换行符和多余空格,您将在列(或位置,如果您愿意)中找到错误 665。

偏离主题,但我建议您了解在查询中使用 JOIN,它大大提高了可读性

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

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