gpt4 book ai didi

java - 指定 Hibernate 的 aliasToBean 使用的 setter

转载 作者:行者123 更新时间:2023-12-01 09:13:31 24 4
gpt4 key购买 nike

我正在使用 aliasToBean 将 Criteria 结果集转换为我的自定义 DTO;

criteria.setResultTransformer(Transformers.aliasToBean(CustomEntity.class));

其中一项属性; id 以整数形式返回。

我有以下两个 setter :

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

所以变压器选择了错误的 setter 。

问:有什么方法可以告诉变压器使用哪个 setter 吗?

最佳答案

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

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

关于java - 指定 Hibernate 的 aliasToBean 使用的 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40761021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com