Java Hibernate:LazyInitializationException:无法初始化代理-无会话
董事会实体和成员实体不是关联映射 董事会实体类Java Hibernate:LazyInitializationException:无法初始化代理-无会话,java,hibernate,jpa,spring-data-jpa,Java,Hibernate,Jpa,Spring Data Jpa,董事会实体和成员实体不是关联映射 董事会实体类 @Entity(name = "BOARD") @Table @SequenceGenerator(name = "BOARD_SEQ_GENERATOR" , sequenceName = "BOARD_SEQ" , initialValue = 1) public class BoardEntity { @Id @GeneratedValue(st
@Entity(name = "BOARD")
@Table
@SequenceGenerator(name = "BOARD_SEQ_GENERATOR"
, sequenceName = "BOARD_SEQ"
, initialValue = 1)
public class BoardEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE
, generator = "BOARD_SEQ_GENERATOR")
private long idx;
@Lob
private String contents;
private String title;
private long insNo;
@Temporal(TemporalType.TIMESTAMP)
private Date insDate;
private long uptNo;
@Temporal(TemporalType.TIMESTAMP)
private Date uptDate;
@Transient
private String insName;
.....
getter / setter
@Entity
@Table(name = "MEMBER")
@SequenceGenerator(name = "MEMBERIDX_SEQ_GENERATOR"
, sequenceName = "MEMBERIDX_SEQ"
, initialValue = 1)
public class MemberEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE
, generator = "MEMBERIDX_SEQ_GENERATOR")
private long memberIdx;
@Column(nullable = false)
private String id;
@Column(nullable = false)
private String pwd;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private int age;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false)
private Date insDate;
.....
getter / setter
成员实体类
@Entity(name = "BOARD")
@Table
@SequenceGenerator(name = "BOARD_SEQ_GENERATOR"
, sequenceName = "BOARD_SEQ"
, initialValue = 1)
public class BoardEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE
, generator = "BOARD_SEQ_GENERATOR")
private long idx;
@Lob
private String contents;
private String title;
private long insNo;
@Temporal(TemporalType.TIMESTAMP)
private Date insDate;
private long uptNo;
@Temporal(TemporalType.TIMESTAMP)
private Date uptDate;
@Transient
private String insName;
.....
getter / setter
@Entity
@Table(name = "MEMBER")
@SequenceGenerator(name = "MEMBERIDX_SEQ_GENERATOR"
, sequenceName = "MEMBERIDX_SEQ"
, initialValue = 1)
public class MemberEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE
, generator = "MEMBERIDX_SEQ_GENERATOR")
private long memberIdx;
@Column(nullable = false)
private String id;
@Column(nullable = false)
private String pwd;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private int age;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false)
private Date insDate;
.....
getter / setter
MemberRepository类代码
@Repository
public interface MemberRepository extends JpaRepository<MemberEntity, Long> {
@Query("select m from MemberEntity m where m.id=:id")
public MemberEntity getMemberIDbyId(@Param("id") String id);
}
@Service
@Transactional
public class MemberService {
@Autowired private MemberRepository memberRepository;
public void addMember(MemberEntity member) {
memberRepository.save(member);
}
public MemberEntity getMember(Long memberIdx) {
return memberRepository.getOne(memberIdx);
}
}
@Controller
@RequestMapping(value = "/board")
public class BoardController {
@Autowired
private BoardService boardService;
@Autowired
private MemberService memberService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String BoardList(HttpServletRequest req, HttpServletResponse resp, Model model) throws Exception {
List<BoardEntity> resutlList = boardService.getBoardList();
//resutlList.forEach(System.out::println);
for (BoardEntity item : resutlList) {
MemberEntity memberEntity = memberService.getMember(item.getInsNo());
item.setInsName(memberEntity.getName());
}
model.addAttribute("boardList", resutlList);
return "board/boardList";
}
}
BoardController类代码
@Repository
public interface MemberRepository extends JpaRepository<MemberEntity, Long> {
@Query("select m from MemberEntity m where m.id=:id")
public MemberEntity getMemberIDbyId(@Param("id") String id);
}
@Service
@Transactional
public class MemberService {
@Autowired private MemberRepository memberRepository;
public void addMember(MemberEntity member) {
memberRepository.save(member);
}
public MemberEntity getMember(Long memberIdx) {
return memberRepository.getOne(memberIdx);
}
}
@Controller
@RequestMapping(value = "/board")
public class BoardController {
@Autowired
private BoardService boardService;
@Autowired
private MemberService memberService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String BoardList(HttpServletRequest req, HttpServletResponse resp, Model model) throws Exception {
List<BoardEntity> resutlList = boardService.getBoardList();
//resutlList.forEach(System.out::println);
for (BoardEntity item : resutlList) {
MemberEntity memberEntity = memberService.getMember(item.getInsNo());
item.setInsName(memberEntity.getName());
}
model.addAttribute("boardList", resutlList);
return "board/boardList";
}
}
@控制器
@请求映射(value=“/board”)
公共类BoardController{
@自动连线
私人寄宿服务;
@自动连线
私人会员服务;
@RequestMapping(value=“/list”,method=RequestMethod.GET)
公共字符串BoardList(HttpServletRequest-req、HttpServletResponse-resp、Model-Model)引发异常{
List resultlist=boardService.getBoardList();
//resultlist.forEach(System.out::println);
对于(董事会实体项目:ResultList){
MemberEntity=memberService.getMember(item.GetInNo());
item.setInName(memberEntity.getName());
}
model.addAttribute(“boardList”,ResultList);
返回“董事会/董事会名单”;
}
}
错误信息
심각: Servlet[dispatcher]在路径为[]的上下文中的Servlet.service()
引发异常[请求处理失败;嵌套异常为
org.hibernate.LazyInitializationException:无法初始化代理
-没有会话]的根本原因org.hibernate.LazyInitializationException:无法初始化代理
-org.hibernate.proxy.AbstractLazyInitializer.initialize上没有会话(AbstractLazyInitializer.java:147)
在
org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:260)
在
org.hibernate.proxy.pojo.javassist.javassistlazinitializer.invoke(javassistlazinitializer.java:68)
在
com.knk.spring4.entity.member.MemberEntity\u$$\ uJVST201\u0.getName(MemberEntity\u$$\ uJVST201\u0.java)
在
com.knk.spring4.controller.board.BoardController.BoardList(BoardController.java:70)
位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于的sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于
java.lang.reflect.Method.invoke(未知源代码)位于
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
在
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
在
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
在
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
在
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
在
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
在
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
在
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
在
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
在
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
在
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
在
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
在
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
在
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
在
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
在
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
在
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
在
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
在
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
在
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
在
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
在
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
在
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
在
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
在
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
在
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
在
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
位于java.lang.Thread.run(未知源)
InsNo和UptNo