samples issues example java spring-boot datasource

java - issues - Fuente de datos Spring-boot cometer problemas



spring boot samples (3)

Mi aplicación utiliza Spring-Boot 1.4.1.RELEASE y la configuración de mi fuente de datos es la siguiente;

spring: datasource: url: *** username: *** password: *** driver-class-name: oracle.jdbc.driver.OracleDriver initial-size: 1 max-active: 100 max-idle: 30 min-idle: 1 max-wait: 0 pool-prepared-statements: true max-open-prepared-statements: 3

El problema es que el último caso de mi prueba de integración, si contiene una lógica de configuración @Sql , no puede confirmar la última configuración de SQL. El problema ocurre rara vez debido al reordenamiento de los casos, y al hecho de que solo hay un puñado de casos con lógica de configuración para preparar DB. No hay configuración, excepto la de OracleDB, y eso está en ConfigClass .

@SpringBootTest(classes = ConfigClass.class) public class EtcTest { @After public void teardown() { // teardwon X, Y, & Z } @Test @Sql("setupX.sql") @Sql("setupY.sql") @Sql("setupZ.sql") public void get_fromDb() { List<Etc> list = buildExpectedList(); Obj expected = buildExpected(); Obj actual = getCallToAPI(); assertThat(rs.getX()).isEqualTo(expected.getX()); assertThat(rs.getY()).isEqualTo(expected.getY()); assertThat(rs.getZ()).containsAll(list); } }

El problema, por ejemplo en el caso anterior, si fuera el último caso de integración, no puede confirmar el último SQL en las anotaciones @Sql , concretamente SetupZ.sql , pero los datos no faltan por completo, inserta la clave principal, y a veces columnA , o columnB , es como si algo realmente malo aquí.

¿Causaría esto la presencia o la ausencia de alguna configuración? Si no, ¿cuál sería el motivo?


Hola para las clases de prueba en lugar de la base de datos real, puede ir con bases de datos en memoria como DB2, derby y h2. proporciona la solución para su problema.

para el ejemplo de código, puede encontrar a continuación el repositorio jpa de datos de primavera de URL Caso de prueba en memoria


Intentarías usar JPA para persistir. La siguiente configuración estaría disponible:

spring.jpa.show-sql=true

Entonces podrías ver lo que salió mal.