日期:2014-05-16  浏览次数:20432 次

存在外键关联时,后台返回Json
当返回Json的数据中,存在外键关联的数据,会出现“no session”的错,这个是因为当转成Json时,需要获取外键管理的数据,却发现session已经关闭,无法完成操作而导致的。可以通过配置OpenSessionInViewFilter实现。

配置完成OpenSessionInViewFilter后,依然出现问题:
java.lang.NoSuchMethodException: Property 'delegate' has no getter method

这是由于采用了延迟加载或者循环引用引发的异常。解决:
JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonTimeProcessor());
		jsonConfig.registerJsonValueProcessor(java.sql.Date.class, new JsonTimeProcessor());
		jsonConfig.setExcludes(new String[] { "hibernateLazyInitializer","handler","tProvince"});
		JSONObject jsonObject = JSONObject.fromObject(pm,jsonConfig);