我使用aliasToBean将标准结果集转换为我的自定义DTO;
criteria.setResultTransformer(Transformers.aliasToBean(CustomEntity.class));属性之一;id作为整数返回。
我有以下两位策划人:
public void setId(Integer Id) {
this.uitId = String.valueOf(Id);
}
public void setId(String Id) {
this.uitId = Id;
}我得到了以下例外:
10:43:30.009 [main] ERROR org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: com.package.example.CustomEntity, setter method of property: Id
10:43:30.011 [main] ERROR org.hibernate.property.BasicPropertyAccessor - expected type: java.lang.String, actual value: java.lang.Integer所以变压器选错了定位器。
问:有没有办法告诉变压器使用哪台定位器?
发布于 2016-11-23 10:27:45
不,您的自定义DTO应该有一个在JavaBeans中定义的setter,但是您可以添加其他方法来操作字段,但是Hibernate需要适当的setter。
但是我通常更喜欢手动获得结果,比如通过query.list()返回一个List<Object[]>,并通过从列表中提取来构建DTO。
https://stackoverflow.com/questions/40761021
复制相似问题