在我的sql中,我使用了像
这样的count函数COUNT( bip.seat_number) as totalSeats
我试图将此totalSeats属性映射到名为ScheduleSummery
的java beanTransformers.aliasToBean(ScheduleSummery.class)
这是我的java bean类
public class ScheduleSummery {
private String totalSeats;
public String getTotalSeats() {
return totalSeats;
}
public void setTotalSeats(String totalSeats) {
this.totalSeats = totalSeats;
}
}
我在尝试运行此代码时遇到异常。我已将totalSeats定义为String,但它仍显示期望的类型为java.lang.String
IllegalArgumentException occurred while calling setter for property
[ScheduleSummery.totalSeats
(expected type = java.lang.String)];
target = [ScheduleSummery@3f08662f], property value = [27]
任何想法? :(
答案 0 :(得分:1)
问题是您的查询返回某种数字,而您的属性需要一个字符串。
你必须选择
将查询结果转换为类似的字符串(应该与Oracle一起使用,其他数据库的精确语法可能会有所不同):
to_char(COUNT( bip.seat_number)) as totalSeats
将属性更改为您从sql语句中获取的类型。你已经尝试过int(根据其他的,现在删除的答案。你可能尝试的其他选项是:long, Long, Integer, BigInteger
如果尝试并且错误没有帮助,你可以确定代码Hibernate在哪里尝试分配(来自stacktrace),在那里放一个断点,看看它实际上有什么样的价值。