2015-10-13 12 views
7

"Błąd sprawdzania poprawności nowo nawiązanego połączenia".Nie można sprawdzić poprawności nowo ustanowionego połączenia

Przeszukałem i przeczytałem każde pytanie związane z tym błędem. Ale nie był w stanie znaleźć rozwiązania.

Używam spring-boot-starter-data-jpa.

Działa bez żadnych błędów z PostgreSQL. Ale chcę użyć wbudowanej bazy danych !!!

application.properties:

#We don't need JMX here - disabling it allows for faster startup 
spring.jmx.enabled=false 
spring.datasource.testOnBorrow=true 
spring.datasource.validationQuery=SELECT 1 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=create-drop 

spring.datasource.driver-class-name=org.hsqldb.jdbcDriver 
spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect 
spring.datasource.url=jdbc:hsqldb:file:${user.home}/db/data;user=sa;password=123; 
spring.datasource.username=sa 
spring.datasource.password=123 

Nagłówek MainApplication klasa:

@ComponentScan(value = {"db", "app", "ui"}) 
@EnableJpaRepositories(basePackages = "db") 
@EntityScan(basePackages = "db") 
@EnableTransactionManagement 
@SpringBootApplication 

Ten błąd rzucony tylko podczas korzystania z wbudowanych baz danych (przynajmniej Derby, HSQLDB) i nie zawsze . Czasami uruchamia się normalnie, znajduje i zapisuje jednostki bez błędów, ale czasami pojawia się po odczekaniu pewnego okresu lub natychmiast po udanej transakcji.

Jak mogę rozwiązać ten problem?

+0

* "Ten błąd ..." * który? Dodaj to do swojego pytania. – m02ph3u5

+0

Niestety, ten błąd to "Nie można zweryfikować nowo nawiązanego połączenia" – SparX

Odpowiedz

7

Twoje zapytanie dotyczące sprawdzania poprawności jest problemem. Chociaż SELECT 1 bez FROM działa w Postgres, nie jest poprawne w hsqldb.

Zobacz ten answer dla sugerowanych zapytań walidacyjnych dla różnych baz danych

+0

To działa. Dziękuję @jny. – SparX

1

spróbować bez zapytania walidacji. Jeśli sterownik HSQLDB jest zgodny z JDBC4, powinien używać i pracować z metodą Connection.isValid(int timeout).

+0

Nie sprawdziłem twojego rozwiązania. W każdym razie dzięki za odpowiedź. – SparX

Powiązane problemy