spring-boot n'est pas de la création de la base de données hsqldb
Dans mon projet pour le printemps, je commence à utiliser spring-boot avec le printemps-jpa pour créer et gérer une base de données HSQLDb.
J'ai cette hibernate.properties
chez toi, dossier src/main/resources
de mon projet:
# jdbc.X
jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver
jdbc.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb
jdbc.user=sa
jdbc.pass=
# hibernate.X
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=create
mon pom.xml ont ce dépendances:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
ma classe principale est que:
@Controller
@EnableJpaRepositories
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
@RequestMapping(value = "/signin")
public String signin(Model model) {
return "acesso/signin";
}
@RequestMapping(value = "/admin")
public String admin(Model model) {
return "private/admin";
}
@RequestMapping(value = "/")
public String index(Model model) {
return "public/index";
}
}
quand je lance l'application, je peux voir ceci dans la console:
2014-10-30 17:58:51.708 INFO 31413 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {4.3.6.Final}
2014-10-30 17:58:51.713 INFO 31413 --- [ main] org.hibernate.cfg.Environment : HHH000205: Loaded properties from resource hibernate.properties: {jdbc.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb, hibernate.dialect=org.hibernate.dialect.HSQLDialect, hibernate.show_sql=false, jdbc.user=sa, hibernate.bytecode.use_reflection_optimizer=false, hibernate.hbm2ddl.auto=create, jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver, jdbc.pass=}
2014-10-30 17:58:51.714 INFO 31413 --- [ main] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist
2014-10-30 17:58:52.089 INFO 31413 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2014-10-30 17:58:52.191 INFO 31413 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
2014-10-30 17:58:52.385 INFO 31413 --- [ main] o.h.h.i.ast.ASTQueryTranslatorFactory : HHH000397: Using ASTQueryTranslatorFactory
2014-10-30 17:58:52.838 INFO 31413 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000227: Running hbm2ddl schema export
2014-10-30 17:58:52.845 INFO 31413 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000230: Schema export complete
mais pas de base de données est créée dans le chemin défini par la propriété jdbc.url
.
Quelqu'un peut me dire ce que je fais de mal?
- Pourquoi êtes-vous encore en train d'essayer de ne PAS utiliser le Printemps de Démarrage? Vous êtes juste rendre les choses plus difficile pour vous-même. C'est le thème récurrent dans toutes les questions que vous avez posées. Travailler AVEC le framework n'est pas autour ou contre le cadre.
- Comment alors? Je suis à l'aide de spring-boot pour gérer l'accès à la base de données. Voyez-vous le code que j'ai posté ici?
- Vous utilisez hiberate.propriétés de mise en veille prolongée et qui est heureusement ignoré par le Printemps de Démarrage. Vous configurez manuellement tout vous-même. Printemps de Démarrage n'a pas lu le
hibernate.properties
hibernate est de la lecture que.
Vous devez vous connecter pour publier un commentaire.
Que vous seriez mieux à l'aide de Printemps de Démarrage pour gérer votre configuration. Il va passer Hibernate configuration d'Hibernate tout aussi auto-création de votre source de données et de base de données pour vous.
Je voudrais déplacer l'ensemble de votre configuration en
src/main/resources/application.properties
:J'ai enlevé un peu inutile de configuration. Par exemple, la configuration de
driverClassName
, comme le Printemps de Démarrage déduit à partir de l'url et le vide de la source de données mot de passe que c'est la valeur par défaut. Vous pouvez voir une partie de la documentation de la configuration de propriétés et leurs valeurs par défaut ici.