出现Unable to locate appropriate constructor on class解决方案
2015-08-18 18:10
344 查看
今天使用Hibernate操作时,查询的操作也出现了这个错误,百思不得解,最后在网上找到了结局办法,应该算不上办法,就是原因。
首先我使用的hql语句如下
出现这个错误,很大程度上是由于时间格式引起的,原因如下
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包冲突。。。
首先我使用的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包冲突。。。
相关文章推荐
- Objective-C NSDate的使用
- Objective-C 常见的结构体
- Objective-C 集合对象的内存管理
- cocos2dx android mac
- java.lang.unsatisfiedlinkerror(Android)
- Android Studio删除工程里面无用的代码和资源
- OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出
- android经典开发书籍
- Android 点滴——AsyncTask
- Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()'
- JS中apply和call的区别和用法
- Unity Shader 学习笔记 (六) GPU 图形绘制管线
- 关于Android中的四大组件(AIDL Service的使用)
- Objective-C Copy的概念、入门和内存管理
- APP开机自启动
- android ndk环境搭建,如果是mac,请先装mac make编译器(可以使用Xcode进行安装)
- Android 组件类继承关系结构图
- Mac 下设置Android 环境变量 NDK
- Objective-C 单例模式的实现
- Objective-C:NSDectionary字典的常见操作