首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决方法

2012-07-31 
SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决办法SpringMVC杂记(七) Jackson与Hiber

SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决办法
SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决办法

1) 如下代码

@Controller@RequestMapping("/just")public class TestController {@Resourceprivate EmployeeDao dao;@ResponseBody@RequestMapping("/test")public List<Employee> test() {return dao.findAllEmployees();}}

如果dao查找出来的列表中包含不完整的Entity最终SpringMVC会出现一个内部异常。

2) 有人写了一个插件专门来解决这个问题。
<dependency>  <groupId>com.fasterxml</groupId>  <artifactId>jackson-module-hibernate</artifactId>  <version>0.7.0</version></dependency>

这里包含一个Moduel("com.fasterxml.jackson.module.hibernate.HibernateModule")实现,就像所有Jackson标准的Model注册一下就可以用了。
ObjectMapper mapper = new ObjectMapper();mapper.registerModule(new HibernateModule());


3) 可以自己写一个ObjectMapper的子类注册给"org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
package com.wicresoft.jpo.demo.json;import org.codehaus.jackson.map.ObjectMapper;import org.codehaus.jackson.map.SerializationConfig.Feature;import com.fasterxml.jackson.module.hibernate.HibernateModule;public class HibernateAwareObjectMapper extends ObjectMapper {public HibernateAwareObjectMapper() {HibernateModule hm = new HibernateModule();registerModule(hm);configure(Feature.FAIL_ON_EMPTY_BEANS, false);}public void setPrettyPrint(boolean prettyPrint) {configure(Feature.INDENT_OUTPUT, prettyPrint);}}

<mvc:annotation-driven conversion-service="conversion-service" validator="validator"><mvc:message-converters register-defaults="false"><bean /><bean /><bean /><!-- 修改为以下配置即可 --><bean value="true" /></bean></property></bean><bean /><bean /></mvc:message-converters></mvc:annotation-driven>

热点排行