使用hibernate查询数据,用json转换数据时发生异常:java.lang.reflect.InvocationTargetException
原因分析:
在使用json时, json中只支持java.util.Date 中的Date类 ,
而不支持java.sql.Date 中的类,而hibernate映射的是java.sql.Date。
因此需做一下转换才能正常使用json转换
1.java.util.Date date = new Date(model.getCreateDate().getTime());
vo.setCreateDate(date);
其中:model.getCreateDate()是hibernate查询出的Date,date是转化后需要的Date.
2.也可以在json转换时,通过设置JsonConfig来转换:
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.registerJsonValueProcessor(Date.class,
new DateJsonValueProcessor("yyyy-MM-dd HH-mm-ss"));
JSONArray resultArray = new JSONArray();
resultArray = JSONArray.fromObject(list,config);