0 0

使用Hibernate框架,多表查询时,用一个新的类BuyBean来保存结果多表查询的结果,Timestamp类型出错!怎样解决?5

使用Hibernate框架,多表查询时,用一个新的类BuyBean来保存结果多表查询的结果,Timestamp类型出错!

sql查询语句:String sql = "select new com.anzy.bean.BuyBean(pro.id,pro.price,pro.buySupplyTime) from TbProducts as pro,TbImages as img where ..."

TbProducts类的buySupplyTime属性是java.sql.Timestamp类型,
TbProducts的映射文件中的buySupplyTime属性类型也是Timestamp,
MySql数据库中的该字段的类型是Date(值只有年月日)。
BuyBean中对应的属性类型也是Timestamp,
BuyBean的构造函数也写好了。

运行出错:myeclipse出错信息:
org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [com.anzy.bean.BuyBean] [select new ......]
但删除sql语句中的pro.buySupplyTime后,正常运行,正常取值
修改后的sql语句:String sql = "select new com.anzy.bean.BuyBean(pro.id,pro.price) from TbProducts as pro,TbImages as img where ..."

结论:查询结果保存到BuyBean的Timestamp类型出错。

没奶油的!两个类型明明一样,为什么就出错呢?郁闷了,到底怎么解决这个问题?求解!求解!
2012年6月15日 09:55

3个答案 按时间排序 按投票排序

0 0

应该是构造函数的问题,com.anzy.bean.BuyBean这个类里面有BuyBean(pro.id,pro.price,pro.buySupplyTime)这个构造函数吗?

2012年6月16日 11:09
0 0

Timestamp 这个应该不会出问题的,你不放心就改成 string

吧异常 贴全一点

2012年6月15日 13:16
0 0

Unable to locate appropriate constructor
是不是和构造器有关系?BuyBean 有没有 BuyBean(id,price,buySupplyTime)构造器?

2012年6月15日 11:59

相关推荐

Global site tag (gtag.js) - Google Analytics