org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.hengbao.otp.bean.AuthStatusBean.sum
调用sql语句遇到这个问题,是因为hibernate版本或者所使用的数据库默认数据格式造成的,尤其是在进行sum,count等函数操作时,换了一圈的int,Integer,long,Long,最后没办法,虽知不可能还是试了doubel,晕死。还不行。
最后没办法,只好变通,不采用hibernate的
createQuery
或createSQLQuery
createSQLQuery
转而采用
getNamedQuery
的方式,在xml文件中,指定对应字段对应的类型,一运行,测试文件,OK,总算通过了。
由此想到本人以前做的一个:
select new com.gu.vo.StatisticsVO(sum(amount) as sumMoney,"+columnName+" as groupColumns) from TransRecordVO where status=1"
也是一直报这个错误,有的人说是因为
StatisticsVO
的构造方法的类型与查询结果的类型不符造成的,也是试了一圈,没有成功,最后无法。只好修改数据库中对应字段的类型,转了一大圈才解决的。
现在看来,完全也可以采用上述方法指定,对应字段的类型来解决的!
xml文件代码:
<!-- 统计令牌状态 -->
<sql-query name="countStatus">
<return-scalar column="id" type="java.lang.Integer" />
<return-scalar column="authId" type="java.lang.Integer" />
<return-scalar column="sum" type="java.lang.Integer" />
<return-scalar column="tokenStatus" type="java.lang.Integer" />
<![CDATA[
SELECT t.id AS id,t.auth_id AS authId,COUNT(t.token_status) AS sum, t.token_status AS tokenStatus FROM
t_auth_oprate t WHERE t.auth_id =:authId AND (T.operate_time BETWEEN :startDate AND :endDate)
GROUP BY t.token_status
]]>
至于id是Integer还是Long完全可以自由定义转化。当然必须要与返回的bean中对应字段的类型一致。
分享到:
相关推荐
9. **"org.hibernate.PropertyAccessException.txt"**:该文件可能记录了关于Hibernate在尝试访问或修改对象属性时遇到的异常情况,分析其中的错误信息可以帮助定位和解决问题。 10. **"Insert.txt"**:可能包含...
4. **处理异常:** BeanUtils内部处理了可能出现的`PropertyAccessException`,将常见的错误转化为运行时异常,简化了异常处理流程。 5. **类型转换:** 内置了基本类型的转换逻辑,可以自动进行类型转换,如将字符...
6. **`PropertyAccessException`:** 这可能是因为属性类型与数据库字段类型不匹配。检查实体类的属性类型和数据库列的类型,确保它们兼容。此外,注意日期和时间类型的转换,确保使用正确的格式。 7. **`OneToMany`...
5. **异常处理:** 库中内置了对可能出现的异常(如属性不存在或类型转换失败)的处理,通过抛出`PropertyAccessException`,为开发者提供了友好的错误提示。 在实际开发中,Apache Commons BeanUtils被广泛应用于...
PropertyAccessException PropertyAccessor PropertyAccessorUtils PropertyBatchUpdateException PropertyComparator PropertyEditorRegistrar PropertyEditorRegistry PropertyEditorRegistrySupport ...
在处理OGNL表达式时,可能会遇到各种异常,如`PropertyAccessException`(访问属性失败)、`NullPointerException`(空指针异常)等。理解这些异常可以帮助定位和解决问题。 9. 性能优化: 为了提高性能,OGNL...
6. **Exception Handling**: BeanUtils库在处理异常时会抛出`PropertyAccessException`,这是专门为处理JavaBean属性访问错误而设计的异常类,包含了详细的错误信息。 7. **Internationalization (i18n)**: 考虑到...
在这个场景中,我们关注的是`org.apache.commons.beanutils.BeanComparator`,这是一个由Apache Commons BeanUtils项目提供的特殊`Comparator`实现,它专门用来对对象的属性进行比较和排序。 `BeanComparator`类...
5. **使用BeanUtils.copyProperties()的自定义转换器**:如果属性类型不匹配,可以实现`org.apache.commons.beanutils.Converter`接口,然后通过`registerConverter()`方法注册,使BeanUtils在遇到这种类型转换时...
5. **处理异常**:BeanUtils库在处理过程中会捕获并包装可能抛出的异常,如`PropertyAccessException`,使开发者可以统一处理错误,提高代码的健壮性。 6. **国际化支持**:BeanUtils与Apache Commons Locale和...
6. **异常处理**:BeanUtils在处理异常时,通常会捕获并包装成`PropertyAccessException`,这样可以避免因属性访问失败而中断整个程序。 尽管BeanUtils库在处理Java Bean时提供了极大的便利,但也有一些需要注意的...
在使用BeanUtils时,需要注意可能出现的`PropertyAccessException`,它通常表示在尝试访问或修改属性时发生了错误,可能是由于属性不存在、类型不匹配等原因。正确处理这些异常是保证程序健壮性的重要环节。 8. **...
3. **异常处理**:BeanUtils库会捕获并包装在访问属性过程中抛出的异常,返回一个统一的`PropertyAccessException`,简化了错误处理流程。 4. **国际化支持**:通过`Locale`对象,BeanUtils可以处理不同地区的数据...
BeanUtils在处理过程中如果遇到问题(如找不到属性或类型转换失败),会抛出`PropertyAccessException`,开发者可以通过捕获这个异常来处理错误情况。 5. **空值处理**: 对于null值的处理,BeanUtils也做了优化...