Java Hibernate namedquery错误参数id在[from EmployeeName e其中e.name=:name]中不作为命名参数存在

Java Hibernate namedquery错误参数id在[from EmployeeName e其中e.name=:name]中不作为命名参数存在,java,hibernate,named-query,Java,Hibernate,Named Query,我有两个类,一个POJO和一个main类,我正在hibernate中使用带注释的命名查询 POJO类如下所示 @NamedQueries( { @NamedQuery( name="findEmployeeName", query="from Employeenam e where e.name=:name" )

我有两个类,一个POJO和一个main类,我正在hibernate中使用带注释的命名查询

POJO类如下所示

@NamedQueries(
        {
            @NamedQuery(
                    name="findEmployeeName",
                        query="from Employeenam e where e.name=:name" 
                    )
        }
)
@Entity
@Table(name = "employee")
public class Employeenam {

    // public String tostring(){return id+" " +name+ " " +salary+ " " +job;}

    @Id
    @GeneratedValue
    @Column(name = "id")
    int id;

    @Column(name = "name")
    String name;

    @Column(name = "salary")
    int salary;

    @Column(name = "job")
    String job;

    public int setId() {
        return id;
    }

    public void getId(int Id) {
        this.id = Id;
    }

    public String setName() {
        return name;
    }

    public void getName(String Name) {
        this.name = Name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int Salary) {
        this.salary = Salary;
    }

    public String setJob() {
        return job;
    }

    public void getJob(String Job) {
        this.job = Job;
    }

}
主要类别为:

public class FetchData {
    public static void main(String[] args) {

        Configuration configuration = new Configuration();
        configuration.configure("hibernate.cfg.xml");
        SessionFactory sfactory = configuration.buildSessionFactory();
        Session session = sfactory.openSession();
        Query query = session.getNamedQuery("findEmployeeName");
        query.setString("name", "dfdsf");
        Employeenam e = new Employeenam();
        List<Employeenam> empList = query.list();
        session.close();
    }
}
有人能帮我做这个吗。。我又错在哪里了

public int setId() 
{
    return id;
}

public void getId(int Id) {
    this.id = Id;
}
您错误地编码了ID的getter和setter方法。getId应该返回int而不是setId


您对ID的getter和setter方法进行了错误编码。getId应该返回int而不是setId。

My gess是指您实际执行的代码包含行
query.setString(“ID”,“dfdsf”)
而不是
query.setString(“name”,“dfdsf”)。检查您是否重新编译了代码。My gess是指您实际执行的代码包含以下行:
query.setString(“id”,“dfdsf”)
而不是
query.setString(“name”,“dfdsf”)。检查您是否已重新编译代码。
public int setId() 
{
    return id;
}

public void getId(int Id) {
    this.id = Id;
}