Estoy usando springboot para conectarme a una base de datos mysql. Encuentre mi configuración a continuación
spring.datasource.url=jdbc:<connection-url> spring.datasource.username=<username> spring.datasource.password=<password> spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.format_sql=true spring.datasource.tomcat.max-active=50 spring.datasource.tomcat.max-idle=20 spring.datasource.tomcat.max-wait=20000 spring.datasource.tomcat.min-idle=15codigo api
@CrossOrigin(origins = "*", allowedHeaders = "*") @GetMapping(value = "/validateuser/{consumerName}") @Transactional public Boolean valiadateuser(@PathVariable String consumerName) { LOGGER.info("Inside validateuser -1"); ConsumerName user = consumerRepository.findByName(consumerName); LOGGER.info("Inside validateuser -2 :::: " + user); if (user != null) { return Boolean.TRUE; } return Boolean.FALSE; }A continuación se muestra mi excepción
org.springframework.orm.jpa.JpaSystemException: Unable to commit against JDBC Connection; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:353) ~[spring-orm-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255) ~[spring-orm-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:538) ~[spring-orm-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743) [spring-tx-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) [spring-tx-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:665) [spring-tx-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:370) [spring-tx-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) [spring-tx-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring-aop-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) [spring-aop-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) [spring-aop-5.2.5.RELEASE.jar!/:5.2.5.RELEASE] at com.server.controller.SubscribeController$$EnhancerBySpringCGLIB$$14f090fd.subscribeTopic(<generated>) [classes!/:0.0.1-SNAPSHOT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_251]tengo la respuesta
actualizado el resource.properties
spring.datasource.url=jdbc:<connection-url> spring.datasource.username=<username> spring.datasource.password=<password> #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.datasource.hikari.connectionTimeout=20000 spring.datasource.hikari.maximumPoolSize=5Estaba experimentando la misma excepción en mi pila Spring / Postgres. Básicamente, la base de datos no puede devolver/confirmar todas las filas que coinciden con su consulta a tiempo.
Se puede arreglar creando índices en las columnas utilizadas en la consulta en particular. Esto acelera la consulta.
CREATE INDEX index_redflag_person ON redflag_person (firstname, alias,lastname,address,birthplace);Uso Spring, Hibernate y PostgreSQL para practicar, obtuve una excepción similar:
org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection] with root cause org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.mi hibernate.prop tiene alguna configuración a continuación
hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect hibernate.connection.handling_mode=DELAYED_ACQUISITION_AND_RELEASE_AFTER_STATEMENT packages.to.scan=org.practice.dao.entityEs extraño porque el valor predeterminado hibernate.connection.autocommit en hibernate 5.6 es falso
Después de una búsqueda de todo el día, no pude encontrar el mismo error en Internet, finalmente lo descubrí: de alguna manera agregué hibernate.connection.handling_mode en mi archivo de configuración, lo eliminé (el valor predeterminado está bien) y la aplicación funciona como se esperaba.
así que tal vez verifique la configuración y use el parámetro más simple que ayudaría a otra persona