Getting below error logs when running jpa transaction in postgresql database. Issue is generated after upgrading hibernate-core 6+ version.
`Could not determine recommended JdbcType for `com.test.dd.entity.ConsumerRequest`
org.springframework.orm.jpa.JpaSystemException: Could not determine recommended JdbcType for `com.test.dd.entity.ConsumerRequest`
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:320)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:164)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
at jdk.proxy2/jdk.proxy2.$Proxy201.getCountTicketDetailsForReportsCriteria(Unknown Source)
at com.test.dd.util.DdmsHelper.generateReport(DdmsHelper.java:88)
at com.test.dd.service.EWPReportServiceHelper.generateTicketInfoReport(EWPReportServiceHelper.java:266)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at com.test.dd.service.EWPReportServiceHelper$$SpringCGLIB$$0.generateTicketInfoReport(<generated>)
at com.test.dd.service.EWPReportService.generateReport(EWPReportService.java:133)
at com.test.dd.controller.GenerateReportsController.generateReport(GenerateReportsController.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
at com.test.dd.config.DdmsAspect.eventLogger(DdmsAspect.java:92)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at com.test.dd.controller.GenerateReportsController$$SpringCGLIB$$0.generateReport(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at com.test.dd.security.JwtValidationFilter.doFilterInternal(JwtValidationFilter.java:172)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at com.test.dd.security.JwtAPIValidationFilter.doFilterInternal(JwtAPIValidationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapUnsecured$1(ObservationFilterChainDecorator.java:90)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:219)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.hibernate.type.descriptor.java.spi.JdbcTypeRecommendationException: Could not determine recommended JdbcType for `com.test.dd.entity.ConsumerRequest`
at org.hibernate.type.descriptor.java.spi.EntityJavaType.getRecommendedJdbcType(EntityJavaType.java:29)
at org.hibernate.type.spi.TypeConfiguration.lambda$standardBasicTypeForJavaType$2(TypeConfiguration.java:629)
at org.hibernate.type.spi.TypeConfiguration.lambda$standardBasicTypeForJavaType$3(TypeConfiguration.java:657)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740)
at org.hibernate.type.spi.TypeConfiguration.standardBasicTypeForJavaType(TypeConfiguration.java:647)
at org.hibernate.type.spi.TypeConfiguration.standardBasicTypeForJavaType(TypeConfiguration.java:637)
at org.hibernate.type.spi.TypeConfiguration.standardBasicTypeForJavaType(TypeConfiguration.java:625)
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.cast(SqmCriteriaNodeBuilder.java:331)
at org.hibernate.query.sqm.tree.expression.AbstractSqmExpression.as(AbstractSqmExpression.java:104)
at org.hibernate.query.sqm.tree.expression.AbstractSqmExpression.as(AbstractSqmExpression.java:31)
at com.test.dd.util.CriteriaHelper.findRoot(CriteriaHelper.java:104)
at com.test.dd.util.CriteriaHelper.countCriteria(CriteriaHelper.java:55)
at com.test.dd.util.CriteriaHelper.count(CriteriaHelper.java:38)
at com.test.pearl.dao.impl.TicketSearchCustomInterfaceImpl.getCountTicketDetailsForReportsCriteria(TicketSearchCustomInterfaceImpl.java:165)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:288)`
Here's my ConsumerRequest.java file:
@Data
@Entity
@Table(name = "Consumer_request")
public class ConsumerRequest implements Serializable {
/**
* Generated Serial ID
*/
private static final long serialVersionUID = 3946117268527206636L;
@Id
@SequenceGenerator(name = "requestIdGenerator", sequenceName = "consumer_request_csr_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "requestIdGenerator")
@Column(name = "csr_id")
private Long csrId;
/**
* Channel id
*/
@Column(name = "chn_id")
private Long chnId;
/**
* Status Id of Image
*/
@JsonIgnore
@Column(name = "status_id")
private Long statusId;
/**
* Consumer confirmation no
*/
@Column(name = "csr_confirmation_no")
private String csrConfirmationNo;
/**
* csr Is authenticated
*/
@Column(name = "csr_isauthenticated")
private Boolean csrIsauthenticated;
/**
* Consumer process instance id
*/
@Column(name = "csr_proc_instance_id")
private String csrProcInstanceId;
/**
* Created by
*/
@Column(name = "created_by")
private String createdBy;
/**
* Creation Date and Time
*/
@Column(name = "created_datetime")
private LocalDateTime createdDatetime;
@Column(name = "received_date")
private LocalDateTime received_date;
@Column(name = "completed_datetime")
private LocalDateTime completed_date;
/**
* Modified by
*/
@Column(name = "modified_by")
private String modifiedBy;
/**
* Modified Date and Time
*/
@Column(name = "modified_datetime")
private LocalDateTime modifiedDatetime;
/**
* Reason Id
*/
@Column(name = "reason_id")
private Long reasonId;
/**
* Last Action
*/
@Column(name = "last_action")
private String lastAction;
/**
* Queue Id
*/
@Column(name = "queue_id")
private Long queueId;
/**
* Is corrupted
*/
@Column(name = "is_corrupted")
private Boolean isCorrupted;
/**
* Indexer name
*/
@Column(name = "indexer_name")
private String indexerName;
/**
* Connexus Id
*/
//commented by Hemath
/*@Column(name = "connexus_id")
private String connexusId;*/
/**
* Person Id
*/
@Column(name = "person_id")
private String personId;
/**
* Rush Flag
*/
@Column(name = "rush_flag")
private boolean rushFlag;
/**
* Breach Flag
*/
@Column(name = "breach_flag")
private boolean breachFlag;
/**
* Rush Flag
*/
@Column(name = "id_val_flg")
private boolean idValidationFlag;
/**
* Rush Flag
*/
@Column(name = "on_hold_flag")
private boolean onHoldFlag;
/**
* Merge flag
*/
@Column(name = "merge_flag")
private boolean mergeFlag;
/**
* Dispute Type
*/
@Column(name = "dispute_type")
private String disputeType;
/**
* Member Investigation Expired status
*/
@Column(name = "mi_status")
private String miStatus;
/**
* RPA ID validation status
*/
@Column(name = "rpa_id_val_flg")
private boolean rpaValidationFlag;
/**
* Consumer letter for this request
*/
@OneToOne(cascade = CascadeType.ALL, mappedBy = "csrReq")
@EqualsAndHashCode.Exclude private ConsumerLetter csrLtr;
/**
* Search information for given consumer
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq", fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
private List<SearchInfo> srchInfo;
/**
* disclosure_sogica_info for consumer
*/
@OneToOne(cascade = CascadeType.ALL, mappedBy = "csrReq",fetch = FetchType.EAGER)
private DisclosureSogicaInfo disclosureSogicaInfo;
/**
* walkin_info for consumer
*/
@OneToOne(cascade = CascadeType.ALL, mappedBy = "csrReq")
private WalkinInfo walkinInfo;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "csrReq")
private ConsumerDoc consumerDoc;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq")
private List<ConsumerCommunicationDetails> ConsumerCommunicationDetails;
/**
* List of service request for given consumer request
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq",fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@JsonManagedReference
@EqualsAndHashCode.Exclude private List<ServiceRequest> srvReqList;
/**
* List of service request for given consumer request
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq")
@JsonManagedReference
@EqualsAndHashCode.Exclude private List<ServiceRequestDeleted> deletedSrvReqList;
/**
* List of service request for given consumer request
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq")
@JsonManagedReference
@EqualsAndHashCode.Exclude private List<TaskActionDetails> taskActionDetailsList;
/**
* List of cid mapped to given consumer request
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq" ,fetch = FetchType.EAGER)
@JsonManagedReference
@EqualsAndHashCode.Exclude private List<CidRequestMap> cidRequestMapList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csrReq")
@JsonManagedReference
@EqualsAndHashCode.Exclude private List<CsrComments> comments;
}
My likely candidates are there is something funky with jakarta.* instead of javax.* which I don't fully understand the differences between. The other candidate I'm thinking could be problematic is that something with EntityManager is causing a problem, but I can't find anything about it. My error is Could not determine recommended JdbcType for com.test.dd.entity.ConsumerRequest, is there something I can do to fix this?