Controller中:
这里有两点需要注意:
一、如果获取数据的方式采用hibernate的load()方法,按上述方法序列化javabean对象或者是List时可能会有关Lazy****proxy***等的异常(已记不清,转换后的json字符串会有handler这个单词),这是因为load()获取数据的方式支持延迟加载,如果需要通过上述方式序列化对象或是List,需要在javabean的类上面添加如下注解:
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}),如图:
二、java对象序列化为json对象时,如果一个实体类与另一个实体类相关联,则会造成序列化死递归,即使是将List序列化为json镀对象,如果List中的javabean与另一个实体类相关联,同样会造成死递归。这种情况可以在多对一的多表中,通过在关联的属性上注解@JsonIgnore来解决:
实体类Programa中:
@ManyToOne
@JoinColumn(name="sid") //站点, 多对一
@JsonIgnore
private Site site;