您的位置:首页 > 移动开发

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

2015-08-18 18:10 344 查看
今天使用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包冲突。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: