如何解决HQL 响应 org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:u
我正在尝试使用 HQL 获取系统中所有用户的列表,但它引发了我的错误 org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: u
请看一看,让我知道这里有什么问题?
@SuppressWarnings("unchecked")
@Override
@Transactional
public List<Users> getAllUsers(Users usermodel,List<String> errorList) {
List<Users> allUsersNotRoleSpecific = null;
try {
StringBuilder qryStr= new StringBuilder("SELECT u from Users u WHERE u.id !=0 AND u.status= "+Constants.userStatus.ACTIVE );
if(Utils.isNotNull(usermodel)) {
if(Utils.isNotNull(usermodel.getId())) {
qryStr.append("AND u.id=:id");
}
if(Utils.isNotNull(usermodel.getUniqueUserId())) {
qryStr.append("AND u.uniqueUserId=:uniqueUserId");
}
if(Utils.isNotNull(usermodel.getFirstName())) {
qryStr.append("AND u.firstName=:firstName");
}
if(Utils.isNotNull(usermodel.getLastName())) {
qryStr.append("AND u.lastName=:lastName");
}
if(Utils.isNotNull(usermodel.getDateOfBirth())) {
qryStr.append("AND u.dateOfBirth=:dateOfBirth");
}
if(Utils.isNotNull(usermodel.getEmail())) {
qryStr.append("AND u.email=:email");
}
if(Utils.isNotNull(usermodel.getUserName())) {
qryStr.append("AND u.userName=:userName");
}
if(Utils.isNotNull(usermodel.getpassword())) {
qryStr.append("AND u.password=:password");
}
if(Utils.isNotNull(usermodel.getStatus())) {
qryStr.append("AND u.status=:status");
}
if(Utils.isNotNull(usermodel.getRole())) {
qryStr.append("AND u.role=:role");
}
if(Utils.isNotNull(usermodel.getCountry())) {
qryStr.append("AND u.country=:country");
}
if(Utils.isNotNull(usermodel.getState())) {
qryStr.append("AND u.state=:state");
}
if(Utils.isNotNull(usermodel.getCity())) {
qryStr.append("AND u.city=:city");
}
if(Utils.isNotNull(usermodel.getZipCode())) {
qryStr.append("AND u.zipCode=:zipCode");
}
if(Utils.isNotNull(usermodel.getAddress())) {
qryStr.append("AND u.address=:address");
}
if(Utils.isNotNull(usermodel.getPhoneNumber())) {
qryStr.append("AND u.phoneNumber=:phoneNumber");
}
if(Utils.isNotNull(usermodel.getAddedAt())) {
qryStr.append("AND u.addedAt=:addedAt");
}
}else {
errorList.add("No Users Found !");
logger.info("USER MODEL IS NULL !");
}
Query query = entityManager.createquery(qryStr.toString());
if(Utils.isNotNull(usermodel)) {
if(Utils.isNotNull(usermodel.getId())) {
query.setParameter("id",usermodel.getId());
}
if(Utils.isNotNull(usermodel.getUniqueUserId())) {
query.setParameter("uniqueUserId",usermodel.getUniqueUserId());
}
if(Utils.isNotNull(usermodel.getFirstName())) {
query.setParameter("firstName",usermodel.getFirstName());
}
if(Utils.isNotNull(usermodel.getLastName())) {
query.setParameter("lastName",usermodel.getLastName());
}
if(Utils.isNotNull(usermodel.getDateOfBirth())) {
query.setParameter("dateOfBirth",usermodel.getDateOfBirth());
}
if(Utils.isNotNull(usermodel.getEmail())) {
query.setParameter("email",usermodel.getEmail());
}
if(Utils.isNotNull(usermodel.getUserName())) {
query.setParameter("userName",usermodel.getUserName());
}
if(Utils.isNotNull(usermodel.getpassword())) {
query.setParameter("password",usermodel.getpassword());
}
if(Utils.isNotNull(usermodel.getStatus())) {
query.setParameter("status",usermodel.getStatus());
}
if(Utils.isNotNull(usermodel.getRole())) {
query.setParameter("role",usermodel.getRole());
}
if(Utils.isNotNull(usermodel.getCountry())) {
query.setParameter("country",usermodel.getCountry());
}
if(Utils.isNotNull(usermodel.getState())) {
query.setParameter("state",usermodel.getState());
}
if(Utils.isNotNull(usermodel.getCity())) {
query.setParameter("city",usermodel.getCity());
}
if(Utils.isNotNull(usermodel.getZipCode())) {
query.setParameter("zipCode",usermodel.getZipCode());
}
if(Utils.isNotNull(usermodel.getAddress())) {
query.setParameter("address",usermodel.getAddress());
}
if(Utils.isNotNull(usermodel.getPhoneNumber())) {
query.setParameter("phoneNumber",usermodel.getPhoneNumber());
}
if(Utils.isNotNull(usermodel.getAddedAt())) {
query.setParameter("addedAt",usermodel.getAddedAt());
}
}else {
errorList.add("No User were Found !!");
}
allUsersNotRoleSpecific = query.getResultList();
} catch (Exception e) {
e.printstacktrace();
logger.info("Error Occured at our End!! Please try again Later");
}
logger.info("RETURNED BY GET ALL USERS :: : " + allUsersNotRoleSpecific);
return allUsersNotRoleSpecific;
}
用户模型 @实体 @Table(name="indo_users")
public class Users implements Serializable {
/**
*
*/
private static final long serialVersionUID = -7142538021673305659L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private Integer id;
@Column(name="unique_user_id")
private String uniqueUserId;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
@Column(name="date_birth")
private String dateOfBirth;
@Column(name="email")
private String email;
@Column(name="user_name")
private String userName;
@Column(name="password")
private String password;
@Column(name="status")
private Integer status;
@Column(name="role")
private Integer role;
@Column(name="country")
private String country;
@Column(name="state")
private String state;
@Column(name="city")
private String city;
@Column(name="zip_code")
private String zipCode;
@Column(name="address")
private String address;
@Column(name="gender")
private Integer gender;
@Column(name="phone_no")
private String phoneNumber;
@Column(name="added_at")
private Timestamp addedAt;
public Users() {
}
public Users(String uniqueUserId,String firstName,String lastName,String dateOfBirth,String email,String userName,String password,Integer status,Integer role,String country,String state,String city,String zipCode,String address,String phoneNumber,Timestamp addedAt,Integer gender) {
this.uniqueUserId = uniqueUserId;
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.email = email;
this.userName = userName;
this.password = password;
this.status = status;
this.role = role;
this.country = country;
this.state = state;
this.city = city;
this.zipCode = zipCode;
this.address = address;
this.phoneNumber = phoneNumber;
this.addedAt = addedAt;
this.gender = gender;
}
public Users(UserDTO userDto) {
this.firstName = userDto.getFirstName();
this.lastName = userDto.getLastName();
this.dateOfBirth = userDto.getDateOfBirth();
this.email = userDto.getEmail();
this.userName = userDto.getUserName();
this.password = userDto.getpassword();
this.status = userDto.getStatus();
this.role = userDto.getRole();
this.country = userDto.getCountry();
this.state = userDto.getState();
this.city = userDto.getCity();
this.zipCode = userDto.getZipCode();
this.address = userDto.getAddress();
this.phoneNumber = userDto.getPhoneNumber();
this.gender = userDto.getGender();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUniqueUserId() {
return uniqueUserId;
}
public void setUniqueUserId(String uniqueUserId) {
this.uniqueUserId = uniqueUserId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getpassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getRole() {
return role;
}
public void setRole(Integer role) {
this.role = role;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public Timestamp getAddedAt() {
return addedAt;
}
public void setAddedAt(Timestamp addedAt) {
this.addedAt = addedAt;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
@Override
public String toString() {
return "{\"id\":\"" + id + "\",\"uniqueUserId\":\"" + uniqueUserId + "\",\"firstName\":\"" + firstName
+ "\",\"lastName\":\"" + lastName + "\",\"dateOfBirth\":\"" + dateOfBirth + "\",\"email\":\"" + email
+ "\",\"userName\":\"" + userName + "\",\"password\":\"" + password + "\",\"status\":\"" + status
+ "\",\"role\":\"" + role + "\",\"country\":\"" + country + "\",\"state\":\"" + state
+ "\",\"city\":\"" + city + "\",\"zipCode\":\"" + zipCode + "\",\"address\":\"" + address
+ "\",\"gender\":\"" + gender + "\",\"phoneNumber\":\"" + phoneNumber + "\",\"addedAt\":\"" + addedAt
+ "\"}";
}
}
解决方法
首先检查/记录生成的查询。 AND 之前好像没有空格。
题外话。看看 Lombok 和 QueryDSL。它们将大大简化您的代码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。