出现Unable to locate appropriate constructor on class解决方案

今天使用Hibernate操作时,查询的操作也出现了这个错误,百思不得解,最后在网上找到了结局办法,应该算不上办法,就是原因。

首先我使用的hql语句如下

String hql="select new PO(。。。。) from 。。。";

出现这个错误,很大程度上是由于时间格式引起的,原因如下

1、在oracle中,使用Hibernate查询返回的时间是java.util.Date的。

2、使用Struts1时,前台的时间插件之类的在form里一定要是String的,否则会报错。

3、使用BeanUtils.copyProperties方法时,form里的String时间只能转换为java.sql.Date类型的。

4、由于3的原因,造成了Po实体类的时间类型要为java.sql.Date类型的。

5、Oracle返回java.util.Date,PO是java.sql.Date,于是问题就出现了。

目前的解决办法就是在构造方法中进行转换,还有一种方法就是自己实现String到java.util.Date之间的转换,不过我现在做的是一个老项目,之前有很多代码,万一改错了就麻烦了,所以采用构造方法中转换还是相对稳妥一些。


不得不吐槽一下,我们项目中的大多数问题,基本上是跟数据库有关的时间类型引起的,还有就是项目中的jar包冲突。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值