SpringDataJpa的使用 – 实体类序列化

SpringDataJpa的使用 – 实体类序列化

前面提到了 JAP 的几个常用注解 @OneToOne、@OneToMany、@ManyToOne、@ManyToMany 的使用,但没有说 序列化的问题,现在来补充一下。

上一篇文章:《SpringDataJpa的使用 – 一对一、一对多、多对多 关系映射》

1、实体类实现 Serializable 接口

Teacher.java

package com.example.demo.entity;

import java.io.Serializable;

@Entity
@Table(name = "TEACHER")
public class Teacher implements Serializable {
    /**  其它属性及方法省略  */
    
    /**
	 * 多对多
	 * 被维护方
	 * 学生 外键
	 */
	@ManyToMany(mappedBy = "teacherList", fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REFRESH})
	private List<Student> studentList;

}

Student.java

package com.example.demo.entity;

import java.io.Serializable;

/**
 * 学生 类
 *
 * @author LJM
 */
@Entity
@Table(name = "STUDENT")
public class Student implements Serializable {
    /**  其它属性及方法省略  */

    /**
     * 一对一
     * 家长 外键
     * 维护方
     */
    @OneToOne(fetch = FetchType.EAGER, cascade = {CascadeType.REMOVE, CascadeType.MERGE})
    @JoinColumn(name = "patriarch_id", unique = true, nullable = false)
    private Patriarch patriarch;
    
    /**
     * 多对一
     * 多方
     * 教室外键
     * 维护方
     */
    @JoinColumn(name = "class_room_id", unique = true, nullable = false)
    @ManyToOne(fetch = FetchType.EAGER)
    private ClassRoom classRoom;
    
    
    /**
     * 多对多
     * 维护方
     * 教师 外键
     */
    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REFRESH})
    @JoinTable(name = "student_teacher", joinColumns = @JoinColumn(name = "student_id"), inverseJoinColumns = @JoinColumn(name = "teacher_id"))
    private List<Teacher> teacherList;

}

Patriarch.java

package com.example.demo.entity;

import java.io.Serializable;

/**
 * 家长 类
 *
 * @author LJM
 */
@Entity
@Table(name = "PATRIARCH")
public class Patriarch implements Serializable {
    /**  其它属性及方法省略  */
    
    /**
     * 一对一
     * 被维护方
     */
    @OneToOne(mappedBy = "patriarch", fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH, CascadeType.MERGE, CascadeType.REMOVE})
    private Student student;
}

ClassRoom.java

package com.example.demo.entity;

import java.io.Serializable;

/**
 * 教室 类
 *
 * @author LJM
 */
@Entity
@Table(name = "CLASSROOM")
public class ClassRoom implements Serializable {
    /**  其它属性及方法省略  */

    /**
     * 一对多
     * 一方
     * (被)维护方
     * 采用下面注释里的注解时也是维护方,这里采用 被维护方代码
     */
    @OneToMany(mappedBy = "classRoom", fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REMOVE})
    private List<Student> studentList;

}
2、添加注解 @JsonIgnore

在添加注解 @JsonIgnore 前 会出现异常,主要是:某个A类中有一个属性是一个B类,在A类序列化时,A类的属性B类也要序列化,但是B类也有一个属性是A类,这导致了无限递归循环。

异常参考:《解决java.lang.IllegalStateException: Cannot call sendError() after the response has been committe》

2022-07-06 14:08:35.522  WARN 6140 --- [nio-8092-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Failure while trying to resolve exception [org.springframework.http.converter.HttpMessageNotWritableException]

java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
	at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:472) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.sendServerError(DefaultHandlerExceptionResolver.java:552) ~[spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotWritable(DefaultHandlerExceptionResolver.java:442) ~[spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.doResolveException(DefaultHandlerExceptionResolver.java:209) ~[spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:142) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:80) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1327) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1138) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.20.jar:5.3.20]
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) [spring-webmvc-5.3.20.jar:5.3.20]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) [tomcat-embed-core-9.0.63.jar:4.0.FR]
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.20.jar:5.3.20]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.63.jar:4.0.FR]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) [spring-web-5.3.20.jar:5.3.20]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.20.jar:5.3.20]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.20.jar:5.3.20]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.20.jar:5.3.20]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.20.jar:5.3.20]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.20.jar:5.3.20]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.20.jar:5.3.20]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.20.jar:5.3.20]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.63.jar:9.0.63]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152]

异常参考:《对象序列化成json报错:java.lang.StackOverflowError: null》

2022-07-06 14:08:35.526 ERROR 6140 --- [nio-8092-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet]      : Servlet.service() for servlet [dispatcherServlet] in context with path [/jpa] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"]->com.example.demo.entity.Patriarch["student"]->com.example.demo.entity.Student["patriarch"])] with root cause

java.lang.StackOverflowError: null
	at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_152]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_152]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_152]
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_152]
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_152]
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_152]
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_152]
	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_152]
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_152]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_152]
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_152]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_152]
	at com.fasterxml.jackson.databind.JsonMappingException.prependPath(JsonMappingException.java:445) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:792) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) ~[jackson-databind-2.13.3.jar:2.13.3]
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) ~[jackson-databind-2.13.3.jar:2.13.3]
    ...
    
    2022-07-06 14:08:35.560 ERROR 6140 --- [nio-8092-exec-1] s.e.ErrorMvcAutoConfiguration$StaticView : Cannot render error page for request [/jpa/student/selectById/1] as the response has already been committed. As a result, the response may have the wrong status code.
解决方案:添加 @JsonIgnore 注解,破环无限递归循环

参考:《JAVA——json序列化错误[“hibernateLazyInitializer”,“handler”,“fieldHandler”]解决方案》

在 ClassRoom、Teacher、Patriarch 三个类的外键上添加 注解 @JsonIgnore,而 Student 无需修改。(方法不唯一)

Teacher.java

package com.example.demo.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;

@Entity
@Table(name = "TEACHER")
public class Teacher implements Serializable {
    /**  其它属性及方法省略  */
    
    /**
	 * 多对多
	 * 被维护方
	 * 学生 外键
	 */
    @JsonIgnore
	@ManyToMany(mappedBy = "teacherList", fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REFRESH})
	private List<Student> studentList;

}

Student.java

package com.example.demo.entity;

import java.io.Serializable;

/**
 * 学生 类
 *
 * @author LJM
 */
@Entity
@Table(name = "STUDENT")
public class Student implements Serializable {
    /**  其它属性及方法省略  */

    /**
     * 一对一
     * 家长 外键
     * 维护方
     */
    @OneToOne(fetch = FetchType.EAGER, cascade = {CascadeType.REMOVE, CascadeType.MERGE})
    @JoinColumn(name = "patriarch_id", unique = true, nullable = false)
    private Patriarch patriarch;
    
    /**
     * 多对一
     * 多方
     * 教室外键
     * 维护方
     */
    @JoinColumn(name = "class_room_id", unique = true, nullable = false)
    @ManyToOne(fetch = FetchType.EAGER)
    private ClassRoom classRoom;
    
    
    /**
     * 多对多
     * 维护方
     * 教师 外键
     */
    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REFRESH})
    @JoinTable(name = "student_teacher", joinColumns = @JoinColumn(name = "student_id"), inverseJoinColumns = @JoinColumn(name = "teacher_id"))
    private List<Teacher> teacherList;

}

Patriarch.java

package com.example.demo.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;

/**
 * 家长 类
 *
 * @author LJM
 */
@Entity
@Table(name = "PATRIARCH")
public class Patriarch implements Serializable {
    /**  其它属性及方法省略  */
    
    /**
     * 一对一
     * 被维护方
     */
    @JsonIgnore
    @OneToOne(mappedBy = "patriarch", fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH, CascadeType.MERGE, CascadeType.REMOVE})
    private Student student;
}

ClassRoom.java

package com.example.demo.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;

/**
 * 教室 类
 *
 * @author LJM
 */
@Entity
@Table(name = "CLASSROOM")
public class ClassRoom implements Serializable {
    /**  其它属性及方法省略  */

    /**
     * 一对多
     * 一方
     * (被)维护方
     * 采用下面注释里的注解时也是维护方,这里采用 被维护方代码
     */
    @JsonIgnore
    @OneToMany(mappedBy = "classRoom", fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.REMOVE})
    private List<Student> studentList;

}

到此:问题解决了。

Hibernate: select student0_.student_id as student_1_2_0_, student0_.class_room_id as class_ro5_2_0_, student0_.patriarch_id as patriarc6_2_0_, student0_.student_age as student_2_2_0_, student0_.student_name as student_3_2_0_, student0_.student_sex as student_4_2_0_, classroom1_.class_room_id as class_ro1_0_1_, classroom1_.class_room_capacity as class_ro2_0_1_, classroom1_.class_room_grade as class_ro3_0_1_, classroom1_.class_room_location as class_ro4_0_1_, classroom1_.class_room_name as class_ro5_0_1_, patriarch2_.patriarch_id as patriarc1_1_2_, patriarch2_.patriarch_address as patriarc2_1_2_, patriarch2_.patriarch_age as patriarc3_1_2_, patriarch2_.patriarch_name as patriarc4_1_2_, patriarch2_.patriarch_phone as patriarc5_1_2_, patriarch2_.patriarch_sex as patriarc6_1_2_, teacherlis3_.student_id as student_1_3_3_, teacher4_.teacher_id as teacher_2_3_3_, teacher4_.teacher_id as teacher_1_4_4_, teacher4_.teacher_age as teacher_2_4_4_, teacher4_.teacher_course as teacher_3_4_4_, teacher4_.teacher_name as teacher_4_4_4_, teacher4_.teacher_sex as teacher_5_4_4_ from student student0_ inner join classroom classroom1_ on student0_.class_room_id=classroom1_.class_room_id inner join patriarch patriarch2_ on student0_.patriarch_id=patriarch2_.patriarch_id left outer join student_teacher teacherlis3_ on student0_.student_id=teacherlis3_.student_id left outer join teacher teacher4_ on teacherlis3_.teacher_id=teacher4_.teacher_id where student0_.student_id=?
Hibernate: select studentlis0_.teacher_id as teacher_2_3_0_, studentlis0_.student_id as student_1_3_0_, student1_.student_id as student_1_2_1_, student1_.class_room_id as class_ro5_2_1_, student1_.patriarch_id as patriarc6_2_1_, student1_.student_age as student_2_2_1_, student1_.student_name as student_3_2_1_, student1_.student_sex as student_4_2_1_, classroom2_.class_room_id as class_ro1_0_2_, classroom2_.class_room_capacity as class_ro2_0_2_, classroom2_.class_room_grade as class_ro3_0_2_, classroom2_.class_room_location as class_ro4_0_2_, classroom2_.class_room_name as class_ro5_0_2_, patriarch3_.patriarch_id as patriarc1_1_3_, patriarch3_.patriarch_address as patriarc2_1_3_, patriarch3_.patriarch_age as patriarc3_1_3_, patriarch3_.patriarch_name as patriarc4_1_3_, patriarch3_.patriarch_phone as patriarc5_1_3_, patriarch3_.patriarch_sex as patriarc6_1_3_ from student_teacher studentlis0_ inner join student student1_ on studentlis0_.student_id=student1_.student_id inner join classroom classroom2_ on student1_.class_room_id=classroom2_.class_room_id inner join patriarch patriarch3_ on student1_.patriarch_id=patriarch3_.patriarch_id where studentlis0_.teacher_id=?
Hibernate: select studentlis0_.teacher_id as teacher_2_3_0_, studentlis0_.student_id as student_1_3_0_, student1_.student_id as student_1_2_1_, student1_.class_room_id as class_ro5_2_1_, student1_.patriarch_id as patriarc6_2_1_, student1_.student_age as student_2_2_1_, student1_.student_name as student_3_2_1_, student1_.student_sex as student_4_2_1_, classroom2_.class_room_id as class_ro1_0_2_, classroom2_.class_room_capacity as class_ro2_0_2_, classroom2_.class_room_grade as class_ro3_0_2_, classroom2_.class_room_location as class_ro4_0_2_, classroom2_.class_room_name as class_ro5_0_2_, patriarch3_.patriarch_id as patriarc1_1_3_, patriarch3_.patriarch_address as patriarc2_1_3_, patriarch3_.patriarch_age as patriarc3_1_3_, patriarch3_.patriarch_name as patriarc4_1_3_, patriarch3_.patriarch_phone as patriarc5_1_3_, patriarch3_.patriarch_sex as patriarc6_1_3_ from student_teacher studentlis0_ inner join student student1_ on studentlis0_.student_id=student1_.student_id inner join classroom classroom2_ on student1_.class_room_id=classroom2_.class_room_id inner join patriarch patriarch3_ on student1_.patriarch_id=patriarch3_.patriarch_id where studentlis0_.teacher_id=?
Hibernate: select studentlis0_.class_room_id as class_ro5_2_0_, studentlis0_.student_id as student_1_2_0_, studentlis0_.student_id as student_1_2_1_, studentlis0_.class_room_id as class_ro5_2_1_, studentlis0_.patriarch_id as patriarc6_2_1_, studentlis0_.student_age as student_2_2_1_, studentlis0_.student_name as student_3_2_1_, studentlis0_.student_sex as student_4_2_1_, patriarch1_.patriarch_id as patriarc1_1_2_, patriarch1_.patriarch_address as patriarc2_1_2_, patriarch1_.patriarch_age as patriarc3_1_2_, patriarch1_.patriarch_name as patriarc4_1_2_, patriarch1_.patriarch_phone as patriarc5_1_2_, patriarch1_.patriarch_sex as patriarc6_1_2_ from student studentlis0_ inner join patriarch patriarch1_ on studentlis0_.patriarch_id=patriarch1_.patriarch_id where studentlis0_.class_room_id=?
Hibernate: select teacherlis0_.student_id as student_1_3_0_, teacherlis0_.teacher_id as teacher_2_3_0_, teacher1_.teacher_id as teacher_1_4_1_, teacher1_.teacher_age as teacher_2_4_1_, teacher1_.teacher_course as teacher_3_4_1_, teacher1_.teacher_name as teacher_4_4_1_, teacher1_.teacher_sex as teacher_5_4_1_ from student_teacher teacherlis0_ inner join teacher teacher1_ on teacherlis0_.teacher_id=teacher1_.teacher_id where teacherlis0_.student_id=?
Hibernate: select student0_.student_id as student_1_2_0_, student0_.class_room_id as class_ro5_2_0_, student0_.patriarch_id as patriarc6_2_0_, student0_.student_age as student_2_2_0_, student0_.student_name as student_3_2_0_, student0_.student_sex as student_4_2_0_, classroom1_.class_room_id as class_ro1_0_1_, classroom1_.class_room_capacity as class_ro2_0_1_, classroom1_.class_room_grade as class_ro3_0_1_, classroom1_.class_room_location as class_ro4_0_1_, classroom1_.class_room_name as class_ro5_0_1_, patriarch2_.patriarch_id as patriarc1_1_2_, patriarch2_.patriarch_address as patriarc2_1_2_, patriarch2_.patriarch_age as patriarc3_1_2_, patriarch2_.patriarch_name as patriarc4_1_2_, patriarch2_.patriarch_phone as patriarc5_1_2_, patriarch2_.patriarch_sex as patriarc6_1_2_, teacherlis3_.student_id as student_1_3_3_, teacher4_.teacher_id as teacher_2_3_3_, teacher4_.teacher_id as teacher_1_4_4_, teacher4_.teacher_age as teacher_2_4_4_, teacher4_.teacher_course as teacher_3_4_4_, teacher4_.teacher_name as teacher_4_4_4_, teacher4_.teacher_sex as teacher_5_4_4_ from student student0_ inner join classroom classroom1_ on student0_.class_room_id=classroom1_.class_room_id inner join patriarch patriarch2_ on student0_.patriarch_id=patriarch2_.patriarch_id left outer join student_teacher teacherlis3_ on student0_.student_id=teacherlis3_.student_id left outer join teacher teacher4_ on teacherlis3_.teacher_id=teacher4_.teacher_id where student0_.student_id=?
Hibernate: select studentlis0_.teacher_id as teacher_2_3_0_, studentlis0_.student_id as student_1_3_0_, student1_.student_id as student_1_2_1_, student1_.class_room_id as class_ro5_2_1_, student1_.patriarch_id as patriarc6_2_1_, student1_.student_age as student_2_2_1_, student1_.student_name as student_3_2_1_, student1_.student_sex as student_4_2_1_, classroom2_.class_room_id as class_ro1_0_2_, classroom2_.class_room_capacity as class_ro2_0_2_, classroom2_.class_room_grade as class_ro3_0_2_, classroom2_.class_room_location as class_ro4_0_2_, classroom2_.class_room_name as class_ro5_0_2_, patriarch3_.patriarch_id as patriarc1_1_3_, patriarch3_.patriarch_address as patriarc2_1_3_, patriarch3_.patriarch_age as patriarc3_1_3_, patriarch3_.patriarch_name as patriarc4_1_3_, patriarch3_.patriarch_phone as patriarc5_1_3_, patriarch3_.patriarch_sex as patriarc6_1_3_ from student_teacher studentlis0_ inner join student student1_ on studentlis0_.student_id=student1_.student_id inner join classroom classroom2_ on student1_.class_room_id=classroom2_.class_room_id inner join patriarch patriarch3_ on student1_.patriarch_id=patriarch3_.patriarch_id where studentlis0_.teacher_id=?
Hibernate: select studentlis0_.teacher_id as teacher_2_3_0_, studentlis0_.student_id as student_1_3_0_, student1_.student_id as student_1_2_1_, student1_.class_room_id as class_ro5_2_1_, student1_.patriarch_id as patriarc6_2_1_, student1_.student_age as student_2_2_1_, student1_.student_name as student_3_2_1_, student1_.student_sex as student_4_2_1_, classroom2_.class_room_id as class_ro1_0_2_, classroom2_.class_room_capacity as class_ro2_0_2_, classroom2_.class_room_grade as class_ro3_0_2_, classroom2_.class_room_location as class_ro4_0_2_, classroom2_.class_room_name as class_ro5_0_2_, patriarch3_.patriarch_id as patriarc1_1_3_, patriarch3_.patriarch_address as patriarc2_1_3_, patriarch3_.patriarch_age as patriarc3_1_3_, patriarch3_.patriarch_name as patriarc4_1_3_, patriarch3_.patriarch_phone as patriarc5_1_3_, patriarch3_.patriarch_sex as patriarc6_1_3_ from student_teacher studentlis0_ inner join student student1_ on studentlis0_.student_id=student1_.student_id inner join classroom classroom2_ on student1_.class_room_id=classroom2_.class_room_id inner join patriarch patriarch3_ on student1_.patriarch_id=patriarch3_.patriarch_id where studentlis0_.teacher_id=?
Hibernate: select studentlis0_.class_room_id as class_ro5_2_0_, studentlis0_.student_id as student_1_2_0_, studentlis0_.student_id as student_1_2_1_, studentlis0_.class_room_id as class_ro5_2_1_, studentlis0_.patriarch_id as patriarc6_2_1_, studentlis0_.student_age as student_2_2_1_, studentlis0_.student_name as student_3_2_1_, studentlis0_.student_sex as student_4_2_1_, patriarch1_.patriarch_id as patriarc1_1_2_, patriarch1_.patriarch_address as patriarc2_1_2_, patriarch1_.patriarch_age as patriarc3_1_2_, patriarch1_.patriarch_name as patriarc4_1_2_, patriarch1_.patriarch_phone as patriarc5_1_2_, patriarch1_.patriarch_sex as patriarc6_1_2_ from student studentlis0_ inner join patriarch patriarch1_ on studentlis0_.patriarch_id=patriarch1_.patriarch_id where studentlis0_.class_room_id=?
Hibernate: select teacherlis0_.student_id as student_1_3_0_, teacherlis0_.teacher_id as teacher_2_3_0_, teacher1_.teacher_id as teacher_1_4_1_, teacher1_.teacher_age as teacher_2_4_1_, teacher1_.teacher_course as teacher_3_4_1_, teacher1_.teacher_name as teacher_4_4_1_, teacher1_.teacher_sex as teacher_5_4_1_ from student_teacher teacherlis0_ inner join teacher teacher1_ on teacherlis0_.teacher_id=teacher1_.teacher_id where teacherlis0_.student_id=?
{
    "code": 200,
    "msg": "请求成功",
    "data": {
        "studentId": 1,
        "studentName": "李四",
        "studentAge": 14,
        "studentSex": "男",
        "patriarch": {
            "patriarchId": 1,
            "patriarchName": "李华",
            "patriarchAge": 40,
            "patriarchSex": "男",
            "patriarchPhone": "15677777888",
            "patriarchAddress": "中国"
        },
        "classRoom": {
            "classRoomId": 1,
            "classRoomName": "高二三班",
            "classRoomLocation": "A栋三楼",
            "classRoomCapacity": 45,
            "classRoomGrade": "高二"
        },
        "teacherList": [
            {
                "teacherId": 1,
                "teacherName": "黄岐",
                "teacherAge": 38,
                "teacherSex": "男",
                "teacherCourse": "语文"
            },
            {
                "teacherId": 2,
                "teacherName": "黄芳",
                "teacherAge": 35,
                "teacherSex": "女",
                "teacherCourse": "英语"
            }
        ]
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十⑧

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值