Java 在com.tct.model.Car类上找不到ID的setter

Java 在com.tct.model.Car类上找不到ID的setter,java,sql,hibernate,jpa,Java,Sql,Hibernate,Jpa,我使用的是SpringMVC和Hibernate,别名为BeanResultTransformer。当我从jsp获取数据时,我收到了来自SQL的异常 模型类: @Entity @Table(name="CARS") public class Car { @Id @Column(name="ID", nullable=false, unique=true) @GeneratedValue(strategy=GenerationType.AUTO) private

我使用的是SpringMVC和Hibernate,别名为BeanResultTransformer。当我从jsp获取数据时,我收到了来自SQL的异常

模型类:

@Entity
@Table(name="CARS")
public class Car {

    @Id
    @Column(name="ID", nullable=false, unique=true)
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    @Column(name="NAME", length=50)
    private String name;
    public int getId() {
       return id;
    }
    public void setId(int id) {
       this.id = id;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
  }
此方法从服务获取数据:

public List<Car> getAllCars() {

    Session session = HibernateUtils.getSession(sessionFactory);
    String sqlQuery = GetSqlUtils.getSqlQueryString(CarRepositoryImpl.class, SQL_DIR + GET_ALL_CARS);
    List<Car> list = null;
    try {
        Query query = session.createSQLQuery(sqlQuery);
        list = query.setResultTransformer(new AliasToBeanResultTransformer(Car.class)).list();
    } catch (HibernateException e) {
        logger.error("error at CarRepositoryImpl.getAllCars: " + e.getMessage());
    } finally {
        HibernateUtils.closeCurrentSession(session);
    }       
    return list;            
}
日志消息:

CarRepositoryImpl - error at CarRepositoryImpl.getAllCars: Could not find setter for ID on class com.tct.web.model.Car

如何修复此错误?非常感谢

将id的
int
更改为
Integer

private Integer id;
public Integer getId() {
   return id;
}
public void setId(Integer id) {
   this.id = id;
}

将id的
int
更改为
Integer

private Integer id;
public Integer getId() {
   return id;
}
public void setId(Integer id) {
   this.id = id;
}

字段以小写形式声明,并且使用大写别名

尝试更改它们,使其与字段名完全相同:

SELECT CAR.ID AS id, CAR.NAME AS name

字段以小写形式声明,并且使用大写别名

尝试更改它们,使其与字段名完全相同:

SELECT CAR.ID AS id, CAR.NAME AS name

嗨@Maciej Kowalski:成功了,这是我的基本错误,我希望你的帮助对我或其他人有用,非常感谢!!伟大的很高兴我能帮助hi@Maciej Kowalski:成功了,这是我的基本错误,我希望你的帮助对我或其他人有用,非常感谢!!伟大的很高兴我能帮忙