今天我项目中使用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){