Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在序列化到json响应时避免hibernate lazy init异常的更好方法_Java_Json_Spring_Hibernate - Fatal编程技术网

Java 在序列化到json响应时避免hibernate lazy init异常的更好方法

Java 在序列化到json响应时避免hibernate lazy init异常的更好方法,java,json,spring,hibernate,Java,Json,Spring,Hibernate,这是参考文献 在json序列化时避免延迟初始化异常的答案是将导致延迟初始化异常的变量设置为null。但是考虑到类有很多依赖项。现在,随着代码库的增长,每次我都必须将代码中所有麻烦的变量设置为null,以避免json序列化问题。当代码库很大时,该方法看起来并不整洁 下面显示了一个看起来不太好的示例代码 //setting some variables to avoid lazy init exception in jackson mapper serialization batch.setEnro

这是参考文献

在json序列化时避免延迟初始化异常的答案是将导致延迟初始化异常的变量设置为null。但是考虑到类有很多依赖项。现在,随着代码库的增长,每次我都必须将代码中所有麻烦的变量设置为null,以避免json序列化问题。当代码库很大时,该方法看起来并不整洁

下面显示了一个看起来不太好的示例代码

//setting some variables to avoid lazy init exception in jackson mapper serialization
batch.setEnrollmentList(null);
List<BatchSchedule> scheduleList = (ArrayList<BatchSchedule>) batch.getBatchScheduleList();

            for (BatchSchedule batchSchedule : scheduleList) {
                batchSchedule.setBatch(null);
            }
            batch.getLecturer().setBatchList(null);
            batch.getLecturer().setSubjectList(null);
            batch.getSubject().setBatchList(null);
            batch.getSubject().setLecturerList(null);
//设置一些变量以避免jackson mapper序列化中的惰性初始化异常
batch.setEnrollmentList(空);
List scheduleList=(ArrayList)batch.getBatchScheduleList();
用于(批处理计划批处理计划:计划列表){
batchSchedule.setBatch(空);
}
batch.get讲师().setBatchList(空);
batch.get讲师().setSubjectList(空);
batch.getSubject().setBatchList(空);
batch.getSubject().set讲师列表(null);
你能给我建议一个更好的方法来处理这个问题吗。
谢谢。

您可以使用
@JsonIgnore
注释懒惰属性,以便Jackson在序列化时忽略它。

非常感谢您的快速回复。有一个问题,它在反序列化时也会忽略该字段吗?似乎是这样,我从json 1.9开始就没有尝试过,因为setter和getter都被忽略了。如果序列化是唯一要忽略的部分,那么需要在getter方法中使用JsonIgnore注释,还需要向field或setter方法添加JsonProperty注释,以避免忽略反序列化,反之亦然。谢谢苏宾的帮助!!!