首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定Hibernate的aliasToBean使用的设置程序

指定Hibernate的aliasToBean使用的设置程序
EN

Stack Overflow用户
提问于 2016-11-23 09:53:27
回答 1查看 584关注 0票数 0

我使用aliasToBean将标准结果集转换为我的自定义DTO;

代码语言:javascript
复制
criteria.setResultTransformer(Transformers.aliasToBean(CustomEntity.class));

属性之一;id作为整数返回。

我有以下两位策划人:

代码语言:javascript
复制
public void setId(Integer Id) {
  this.uitId = String.valueOf(Id);
}
public void setId(String Id) {
  this.uitId = Id;
}

我得到了以下例外:

代码语言:javascript
复制
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

所以变压器选错了定位器。

问:有没有办法告诉变压器使用哪台定位器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-23 10:27:45

不,您的自定义DTO应该有一个在JavaBeans中定义的setter,但是您可以添加其他方法来操作字段,但是Hibernate需要适当的setter。

但是我通常更喜欢手动获得结果,比如通过query.list()返回一个List<Object[]>,并通过从列表中提取来构建DTO。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40761021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档