TransientObjectException while save operation

It seems you are encountering a TransientObjectException when upgrading your Hibernate version from 6.5.2 to 6.6.29. The error indicates that a persistent instance is referencing an unsaved transient instance of DummyResource. Here’s a reformatted version of your problem description and code, along with some thoughts on how to address the issue.

the same code is working fine in 6.5.2 version

When attempting to post using the updated Hibernate version (6.6.29), an exception occurs:

org.springframework.dao.InvalidDataAccessApiUsageException: 
org.hibernate.TransientObjectException: persistent instance references an unsaved transient instance of 'com.xxx.xxx.service.entity.DummyResource' 
(save the transient instance before flushing)

Caused by: org.hibernate.TransientObjectException: 
persistent instance references an unsaved transient instance of 'com.xxx.xxx.service.entity.DummyResource' 
(save the transient instance before flushing)

Code Snippet

Here’s the relevant code where the issue occurs:

public void saveDummyWebAndChildElements(final DummyWeb dummyWeb) {
    this.saveDummyWeb(dummyWeb);

    updateParentReferenceAndSaveEntity(dummyWeb, dummyWeb.getDummyWebResources(), "dummyWeb", dummyWebResourceRepository);

    for (DummyWebResource dummyWebResource : dummyWeb.getDummyWebResources()) {
        updateParentReferenceAndSaveEntity(dummyWebResource, dummyWebResource.getDummyResourceItems(), "dummyWebResource", dummyWebResourceItemRepository);
    }

    updateParentReferenceAndSaveEntity(dummyWeb, dummyWeb.getDummyValves(), "dummyWeb", dummyValveRepository);

    for (DummyValve dummyValve : dummyWeb.getDummyValves()) {
        updateParentReferenceAndSaveEntity(dummyValve, dummyValve.getDummyValveAdditives(), "dummyValve", dummyValveAdditiveRepository);
        updateParentReferenceAndSaveEntity(dummyValve, dummyValve.getDummyValveFuels(), "dummyValve", dummyValveFuelRepository);
    }

    dummyWebRepository.flush();
}

protected <T, S> void updateParentReferenceAndSaveEntity(final T parentEntity, final List<S> childEntityList, final String attrName, 
                                                          @SuppressWarnings("rawtypes") final JpaRepository jpaRepository) {
    if (CollectionUtils.isEmpty(childEntityList)) {
        return;
    }

    childEntityList.forEach(childEntity -> {
        BeanWrapper trgWrap = PropertyAccessorFactory.forBeanPropertyAccess(childEntity);
        trgWrap.setPropertyValue(attrName, parentEntity);
    });

    if (CollectionUtils.isNotEmpty(childEntityList)) {
        jpaRepository.saveAll(childEntityList);
    }
}

Entity Classes

Here are the relevant entity classes that are part of this setup:

DummyWeb.java

@Entity
@Table(name = "DUMMY_WEB")
@AttributeOverride(name = "id", column = @Column(name = "DUMMY_ID"))
@AttributeOverride(name = "createdDate", column = @Column(name = "DATE_CREATED"))
@AttributeOverride(name = "lastUpdated", column = @Column(name = "DATE_MODIFIED"))
@Getter
@Setter
@ToString(callSuper = true)
public class DummyWeb extends DummyBaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Transient
    private String dummyType;

    @Transient
    private boolean canDoSomething;

    @OneToOne(mappedBy = "dummyWeb", orphanRemoval = true, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private DummyAddress dummyAddress;

    @Transient
    private List<DummyResource> dummyResources;

    @Transient
    private List<DummyValve> dummyValves;

    @PrePersist
    @PreUpdate
    public void prePersistOrPreUpdate() {
        if (dummyAddress != null) {
            dummyAddress.setDummyWeb(this);
        }
    }
}

DummyResource.java

@Entity
@Table(name = "DUMMY_RESOURCE")
@AttributeOverride(name = "id", column = @Column(name = "DUMMY_RESOURCE_ID"))
@Getter
@Setter
@ToString(callSuper = true, exclude = "dummyWeb")
public class DummyResource extends DummyBaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "DUMMY_RESOURCE_CODE", length = 75, nullable = false)
    private String dummyResourceCode;

    @Column(name = "DUMMY_END_TIME")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dummyEndTime;

    @ManyToOne
    @JoinColumn(name = "DUMMY_WEB_ID", referencedColumnName = "DUMMY_WEB_ID", nullable = false)
    private DummyWeb dummyWeb;
}

DummyValve.java

@Entity
@Table(name = "DUMMY_VALVE")
@AttributeOverride(name = "id", column = @Column(name = "DUMMY_VALVE_ID"))
@Getter
@Setter
@ToString(callSuper = true, exclude = "dummyWeb")
public class DummyValve extends DummyBaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @ManyToOne
    @JoinColumn(name = "DUMMY_WEB_ID", referencedColumnName = "DUMMY_WEB_ID", nullable = false)
    private DummyWeb dummyWeb;

    @Column(name = "DUMMY_VALVE_NUMBER", nullable = false)
    private Integer dummyValveNumber;

    @Column(name = "DUMMY_SERVICE_LEVEL_CODE", length = 40)
    private String dummyServiceLevelCode;
}

Please share the full stack trace.

.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:165)u2028   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)u2028     at jdk.proxy2/jdk.proxy2.$Proxy274.flush(Unknown Source)u2028   at com.xxx.xxx.service.Service.saveDummyWebAndChildElements(Service.java:105)u2028    at com.xxx.xxx.service.webUpdateService.updateSite(webUpdateService.java:281)u2028       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028   at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)u2028   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)u2028       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)u2028    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380)u2028      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)u2028   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028       at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)u2028  at com.xxx.xxx.service.webUpdateService$$SpringCGLIB$$0.updateSite(<generated>)u2028      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028   at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028       at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)u2028    at org.springframework.integration.handler.support.IntegrationInvocableHandlerMethod.doInvoke(IntegrationInvocableHandlerMethod.java:45)u2028        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)u2028      at org.springframework.integration.handler.support.MessagingMethodInvokerHelper$HandlerMethod.invoke(MessagingMethodInvokerHelper.java:1089)u2028       at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.invokeHandlerMethod(MessagingMethodInvokerHelper.java:573)u2028      at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.processInternal(MessagingMethodInvokerHelper.java:486)u2028  at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.process(MessagingMethodInvokerHelper.java:361)u2028  at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:114)u2028  at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:93)u2028      at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:146)u2028    at org.springframework.integration.handler.AbstractMessageHandler.doHandleMessage(AbstractMessageHandler.java:105)u2028      at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)u2028    at org.springframework.integration.handler.MessageHandlerChain.lambda$configureChain$0(MessageHandlerChain.java:132)u2028    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)u2028        at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)u2028   at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)u2028 at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)u2028      at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:547)u2028    at org.springframework.integration.handler.AbstractMessageProducingHandler.doProduceOutput(AbstractMessageProducingHandler.java:361)u2028    at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:290)u2028      at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:254)u2028        at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:152)u2028    at org.springframework.integration.handler.AbstractMessageHandler.doHandleMessage(AbstractMessageHandler.java:105)u2028 at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)u2028 at org.springframework.integration.handler.MessageHandlerChain.lambda$configureChain$0(MessageHandlerChain.java:132)u2028    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)u2028   at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)u2028        at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)u2028at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)u2028  at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:547)u2028 at org.springframework.integration.handler.AbstractMessageProducingHandler.doProduceOutput(AbstractMessageProducingHandler.java:361)u2028    at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:290)u2028 at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(AbstractMessageProducingHandler.java:254)u2028        at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:152)u2028    at org.springframework.integration.handler.AbstractMessageHandler.doHandleMessage(AbstractMessageHandler.java:105)u2028      at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)u2028    at org.springframework.integration.handler.MessageHandlerChain.handleMessageInternal(MessageHandlerChain.java:162)u2028      at org.springframework.integration.handler.AbstractMessageHandler.doHandleMessage(AbstractMessageHandler.java:105)u2028      at org.springframework.integration.handler.AbstractMessageHandler.handleWithMetrics(AbstractMessageHandler.java:90)u2028    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:70)u2028     at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:132)u2028      at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148)u2028   at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:121)u2028  at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)u2028      at org.springframework.integration.channel.AbstractMessageChannel.sendInternal(AbstractMessageChannel.java:390)u2028    at org.springframework.integration.channel.AbstractMessageChannel.sendWithMetrics(AbstractMessageChannel.java:361)u2028      at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:331)u2028 at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)u2028   at org.springframework.messaging.core.GenericMessagingTemplate.doSendAndReceive(GenericMessagingTemplate.java:234)u2028      at org.springframework.messaging.core.GenericMessagingTemplate.doSendAndReceive(GenericMessagingTemplate.java:47)u2028       at org.springframework.messaging.core.AbstractMessagingTemplate.sendAndReceive(AbstractMessagingTemplate.java:47)u2028  at org.springframework.integration.core.MessagingTemplate.sendAndReceive(MessagingTemplate.java:107)u2028    at org.springframework.integration.gateway.MessagingGatewaySupport.doSendAndReceive(MessagingGatewaySupport.java:687)u2028   at org.springframework.integration.gateway.MessagingGatewaySupport.sendAndReceiveWithMetrics(MessagingGatewaySupport.java:675)u2028     at org.springframework.integration.gateway.MessagingGatewaySupport.sendAndReceive(MessagingGatewaySupport.java:612)u2028     at org.springframework.integration.gateway.MessagingGatewaySupport.sendAndReceive(MessagingGatewaySupport.java:583)u2028     at org.springframework.integration.gateway.GatewayProxyFactoryBean.sendOrSendAndReceive(GatewayProxyFactoryBean.java:675)u2028       at org.springframework.integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:606)u2028   at org.springframework.integration.gateway.GatewayProxyFactoryBean.doInvoke(GatewayProxyFactoryBean.java:571)u2028   at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java:561)u2028     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)u2028     at jdk.proxy2/jdk.proxy2.$Proxy266.updateSite(Unknown Source)u2028      at com.xxx.xxx.service.endpoint.WebController.update(WebController.java:117)u2028     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028      at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)u2028      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)u2028    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)u2028    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)u2028        at com.xxx.xxx.util.logging.UcomLoggingAspect.simpleAround(UcomLoggingAspect.java:127)u2028 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028      at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:649)u2028   at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:631)u2028     at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)u2028      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)u2028       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)u2028  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)u2028     at com.xxx.xxx.service.endpoint.WebController$$SpringCGLIB$$0.update(<generated>)u2028 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028      at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)u2028 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191)u2028      at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)u2028  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:991)u2028        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:896)u2028    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)u2028     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)u2028    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)u2028 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)u2028  at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:925)u2028       at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:593)u2028       at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)u2028     at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)u2028       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)u2028       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)u2028  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at com.xxx.xxx.service.filter.AuditTrailFilter.doFilterWrapped(AuditTrailFilter.java:42)u2028      at com.xxx.xxx.service.filter.AuditTrailFilter.doFilterInternal(AuditTrailFilter.java:32)u2028  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028       at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)u2028 at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)u2028       at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:490)u2028   at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:351)u2028       at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:83)u2028  at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:129)u2028       at com.xxx.xxx.api.security.autoconfigure.CspNonceHeaderFilter.doFilterInternal(CspNonceHeaderFilter.java:33)u2028  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028     at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)u2028 at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028 at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)u2028     at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)u2028  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)u2028  at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)u2028       at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028   at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028  at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:213)u2028   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028  at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028 at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)u2028  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028      at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)u2028   at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)u2028      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028  at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:241)u2028 at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)u2028        at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:138)u2028       at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)u2028  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)u2028   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)u2028     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)u2028at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028       at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:110)u2028    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)u2028       at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)u2028  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028        at org.cloudfoundry.router.jakarta.ClientCertificateMapper.doFilter(ClientCertificateMapper.java:79)u2028    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)u2028       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)u2028    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)u2028     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)u2028   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)u2028  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116)u2028        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)u2028    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)u2028     at org.hibernate.TransientObjectException: persistent instance references an unsaved transient instance of 'com.xxx.xxx.service.entity.DummyValve' (save the transient instance before flushing)u2028 at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)u2028  at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:167)u2028       at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:173)u2028  at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1433)u2028    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1415)u2028 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028   at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028       at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:364)u2028        at jdk.proxy2/jdk.proxy2.$Proxy243.flush(Unknown Source)u2028   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028   at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028       at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:320)u2028      at jdk.proxy2/jdk.proxy2.$Proxy243.flush(Unknown Source)u2028   at org.springframework.data.jpa.repository.support.SimpleJpaRepository.flush(SimpleJpaRepository.java:681)u2028      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)u2028  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)u2028       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)u2028  at java.base/java.lang.reflect.Method.invoke(Unknown Source)u2028        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)u2028      at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:277)u2028      at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170)u2028  at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158)u2028    at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:515)u2028    at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:284)u2028   at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:731)u2028 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:174)u2028    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:149)u2028 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:69)u2028    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028       at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380)u2028      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)u2028   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)u2028       at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)u2028       ... 251 common frames omittedu2028Caused by: org.hibernate.TransientObjectException: persistent instance references an unsaved transient instance of 'com.xxx.xxx.service.entity.DummyValve' (save the transient instance before flushing)u2028      at org.hibernate.engine.spi.CascadingActions$9.cascade(CascadingActions.java:382)u2028  at org.hibernate.engine.spi.CascadingActions$9.cascade(CascadingActions.java:372)u2028       at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:570)u2028    at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:492)u2028   at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:253)u2028 at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:192)u2028 at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:169)u

Posted my Full Stack trace. pls take a look and provide your valuable suggestion. I appreciating your support and guidance

According to the stack trace, it is a @ManyToOne or @OneToOne association that points to a DummyValve entity that is transient. In the entity model you shared, there is no such association. If you don’t share the relevant code, I can’t help you.

DummyWeb class{ @Transient private List dummyValves;} // @oneToMany.

In the DummyValve class {

@ManyToOne @JoinColumn(name = “DUMMY_WEB_ID”, referencedColumnName = “DUMMY_WEB_ID”, nullable = false) private DummyWeb dummyWeb;}

DummyWeb should have one to many relation with DummyValves.

In my previous version of hibernate it was working fine.

I hard to upload all the files . Characters are exceeded in the web page.

Please try to create a reproducer with our test case template and if you are able to reproduce the issue, create a bug ticket in our issue tracker and attach that reproducer.