繁体   English   中英

SpringBoot 中的 NullPointerException - 通过 postman 插入数据时映射 Hibernate

[英]NullPointerException in SpringBoot - Hibernate mapping while inserting data through postman

这是实体的:

public class ProductOffer extends AuditModel implements Serializable {

    @Id
    @GeneratedValue(strategy =  GenerationType.IDENTITY)
    private Integer id = null;
    
    @Column(name = "offer_code", nullable = false)
    private String offerCode = null;

    @NotNull
    @Column(unique = true)
    private String version = null;

    @Column
    private String offerCodeVersion = null;

    @Column
    private String offerName = null;

    @Column
    private String description = null;

    @Column
    private String status = null;

    @JsonProperty
    private OperationEnum operation;

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "lifecycleStatus_id", referencedColumnName = "lId")
    @JsonIgnore
    private LifeCycleStatus lifecycleStatus = null;
}

public class LifeCycleStatus extends AuditModel implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer lId = null;

    @Column
    private String name = null;
    
    @OneToMany(mappedBy = "lifecycleStatus", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<ProductOffer> productOffer = new ArrayList<ProductOffer>();
}

这里是 DAO:

public void addProductOffer(ProductOffer productOffer) {

        Session session = entityManager.unwrap(Session.class);
        LifeCycleStatus lifeCycleStatus = lifeCycleStatusDAO.findById(productOffer.getLifecycleStatus().getLId()); /* am getting NPE here */
        if(lifeCycleStatus == null)
            lifeCycleStatus = new LifeCycleStatus();
        lifeCycleStatus.setName(productOffer.getLifecycleStatus().getName());
        productOffer.setLifecycleStatus(lifeCycleStatus);
        session.saveOrUpdate(productOffer);
    }

这是 Post 映射详细信息:

{

   "offerCode":"HG123",
   "version":"2",
   "offerCodeVersion":"2.2",
   "offerName":"Recharge",
   "description":"aadhakjdhaks",
   "status":"Inactive",
   "operation":"PUBLISH",
   "lifecycleStatus":{
       "lId":2,
       "name":"InActive"
   }
}

这是完整的错误日志

2020-07-21 18:55:42-oac.c.C.[.

Servlet.service() 用于路径 [] 上下文中的 servlet [dispatcherServlet] 引发异常 [请求处理失败; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null at com.hima.demo.dao.ProductOfferDAO.addProductOffer(ProductOfferDAO.java:34) at com.hima.demo.dao.ProductOfferDAO$$ FastClassBySpringCGLIB$$2cf28c6a.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) at org .springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.dao.suppo rt.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java: 749) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) at org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:74fr org.f) amework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) at com.hima.demo.dao.ProductOfferDAO$$EnhancerBySpringCGLIB$$52838a30.addProductOffer() at com.hima.demo.services.ProductOfferService.addProductOffer (ProductOfferService.java:26) at com.hima.demo.services.ProductOfferService$$FastClassBySpringCGLIB$$92d2ad77.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework .aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed (CglibAopProxy。 java:749) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) at org.springframework.aop.framework .ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java :691) at com.hima.demo.services.ProductOfferService$$EnhancerBySpringCGLIB$$3ba67d77.addProductOffer() at com.hima.demo.controller.ProductOfferController.createProd uctOffer(ProductOfferController.java:35) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect .Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl erAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter. handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework .web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.Z2567A5EC9705EB7AC2C984033E0618D .servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.ZB6EFD606D11 8D0F62066E31419FF04CCZ.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter. java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFil ter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter .java:119) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Z93F725A074 23FE1C889F448B33D21F46Z:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core .StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Z93 F725A07423FE1C889F448B33D21F46Z:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) at org.apache.coyote.AbstractProcessorLight .process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590 ) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.Thre adPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang .Thread.run(未知来源)

有人可以帮我吗?

我参考了很多文章,但没有用,请帮助我。 我不知道我在哪里失踪..

我知道这很愚蠢,但是您可以将lId重命名为lid (大写的“I”为小写的“i”)吗?

变量名lid和所有小的后者,并在 DAO 中对所有其他文件进行相关更改,然后再试一次!

也来自 postman 发送带有“盖子”的请求(都是小后者)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM