微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HQL 响应 org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:u

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?