hibernate中实体类构造方法中含有Timestamp 类型变量的"no appropriate constructor.." 错误提示的解决办法

今天我项目中使用S2SH架构中遇到一个问题,我只需要查部份字段,于是在dao中使用

String hql = "select new Content(u.category,u.title,u.addtime) from Content u ";

Query query = this.getSession().createQuery(hql);

实体类中的构造方法中时间字段addtime使用的是myeclipse反向自动生成的Timestamp类型,这样的查询时,就报“no appropriate constructor..”错误,

 

测试了大半天,差不多各种可能性都测试了一遍,最终才发现是在实体类的构造函数中使用Timestamp类型出的错,于是才在网上找解决办法,可以是这个问题发现的人不多,找了很多才看到一偏文章介绍,解决办法记在下面,方便以后像我一样遇到这问题的朋友解决问题:

 

1、把实体类构造方法参数中的Timestamp改为Object类型。

2、写一个类型转换函数,在构造方法内部调用这函数赋值。

 

public Content(Category category, String title,Object addtime)

{

       this.addtime= stringToTimestamp(addtime.toString());

}

public static Timestamp stringToTimestamp(String dateStr){
  
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值