org.hibernate.PropertyNotFoundException:在类dk.comtalk.billing.server.rating.db.RateDTO上找不到flat_rate的setter

时间:2013-01-07 10:13:40

标签: hibernate

SQL结果转换为HQL时出现此异常。 query.setResultTransformer(Transformers.aliasToBean(RateDTO.class)).list()

但我已经在flat_rate

中为RateDTO列设置了setter和getter
private BigDecimal flatRate;

    @Column(name="flat_rate")
public BigDecimal getFlatRate() {
    return flatRate;
}   

public void setFlatRate(BigDecimal flatRate) {
    this.flatRate = flatRate;
}

表示Mysql DB中的相应表格。任何人都可以帮助我。

2 个答案:

答案 0 :(得分:2)

在调用query.list()

之前,尝试使用addScalar()查询对象
final String sql = "select * " + "from international_rate r " + "WHERE LEFT(:called, LENGTH(r.prefix)) = r.prefix " + "and r.valid_from <= :date AND ( r.Valid_to >= :date or r.Valid_to = 0)" + "and r.deleted = 0"; "

    sess.createSQLQuery(sql)
     .addScalar("flatRate", Hibernate.STRING) //like all properties need to Add
.setResultTransformer(Transformers.aliasToBean(RateDTO.class)).list();

答案 1 :(得分:0)

您应该select student.name as name;使用select *将再次抛出异常。您在查询中使用的别名应与DTO类中的属性名称相同。