带有count函数的sql标准aliasToBean问题Hibernate

时间:2015-06-29 12:51:18

标签: java sql hibernate

在我的sql中,我使用了像

这样的count函数
COUNT( bip.seat_number) as totalSeats

我试图将此totalSeats属性映射到名为ScheduleSummery

的java bean
Transformers.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]

任何想法? :(

1 个答案:

答案 0 :(得分:1)

问题是您的查询返回某种数字,而您的属性需要一个字符串。

你必须选择

  1. 将查询结果转换为类似的字符串(应该与Oracle一起使用,其他数据库的精确语法可能会有所不同):

    to_char(COUNT( bip.seat_number)) as totalSeats
    
  2. 将属性更改为您从sql语句中获取的类型。你已经尝试过int(根据其他的,现在删除的答案。你可能尝试的其他选项是:long, Long, Integer, BigInteger如果尝试并且错误没有帮助,你可以确定代码Hibernate在哪里尝试分配(来自stacktrace),在那里放一个断点,看看它实际上有什么样的价值。