Wpis z mikrobloga

Mirunie, mógłby ktoś podpowiedzieć jak podpiąć prawidłowo bazę w postgresie pod aplikacje w spring boocie?
Zrobiłem sobie projekcik, struktura katalogu wygląda tak:
- src
- models
-- User.java
- controllers
- Application.java
- resources
-application.properties

Plik application.properties wygląda tak:

spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.url=jdbc:postgresql://localhost:5432/mainedb
spring.datasource.username=postgres
spring.datasource.password=

Klasa user jest standardowo z adnotacją @Entity oraz ma generowanego automatycznie ID. Problem jest w tym, że rekordy się nie zapisują do bazy która fizycznie jest założona. Działa zapis i odczyt rekordów poprzez resta, ale one nie wędrują do tej bazy, więc zakładam że aplikacja nieprawidłowo czyta application.properties.
#programowanie #java #spring #springboot
  • 21
  • Odpowiedz
2017-03-12 22:10:17.264 INFO 9376 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-03-12 22:10:17.280 INFO 9376 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2017-03-12 22:10:17.282 INFO 9376 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.11
2017-03-12 22:10:17.422 INFO 9376 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-03-12 22:10:17.422 INFO 9376 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2306 ms
2017-03-12 22:10:17.624 INFO 9376 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
  • Odpowiedz
@AwizisieAkat: @kaervek: Zmieniłem nazwę encji na UserA, dodałem zwykłego Logger'a do metody zapisującej, i normalnie dane wchodzą. Robiąc geta na localhost:8080/users/all dostaje jsona z userami, natomiast baza dalej pusta.

@Godziu73: Dodałem
  • Odpowiedz
Zaciąłem w build.gradle compile("com.h2database:h2") w wyniku czego aplikacja mi się wywala na błędzie braku bazy danych, czyli mi tego postgresa w ogóle nie widzi

g.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an
embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are curren
tly active).

Moje
  • Odpowiedz
@Algeroth: nie widzi Ci resourców -> wejdź do ustawień modułu, kliknij na folder z resources i ustaw jako resources w IntelliJ = PPM na projekt w widoku -> open module settings

i dlaczego masz dwa pliki z propertiesami? Zwykły i YAML? jak chcesz miec osobno prod i osobno test to sobie to profilami ogarnij
  • Odpowiedz
@Eoghan: struktura wygląda tak:
- src
-- main
-- resources

Z tego co pamiętam to korzystałem z kreatora, może nie konkretnie pod bazy danych, ale jakiegoś tam użyłem.
  • Odpowiedz
jak chcesz #!$%@?ć gradle'a na rzecz maven'a to pisz, pomogę, ale nie polecam, trzeba się uczyć rozwiązywać problemy, w robocie będziesz miał podobnie:) i nie będzie zlituj
  • Odpowiedz