2016-08-01 49 views
0

Ich benutze Spring Boot mit H2-Datenbank. Meine Anwendung endet mit dem Text unten auf der Konsole.Spring Boot stoppt, während ich einige JPA-Abfragen in das Repository schreiben

2016-08-01 10:36:08.610 INFO 3920 --- [ost-startStop-1] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 
    name: default 
    ...] 
2016-08-01 10:36:08.651 INFO 3920 --- [ost-startStop-1] org.hibernate.Version     : HHH000412: Hibernate Core {4.3.11.Final} 
2016-08-01 10:36:08.651 INFO 3920 --- [ost-startStop-1] org.hibernate.cfg.Environment   : HHH000206: hibernate.properties not found 
2016-08-01 10:36:08.651 INFO 3920 --- [ost-startStop-1] org.hibernate.cfg.Environment   : HHH000021: Bytecode provider name : javassist 
2016-08-01 10:36:08.801 INFO 3920 --- [ost-startStop-1] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {4.0.5.Final} 
2016-08-01 10:36:09.031 INFO 3920 --- [ost-startStop-1] org.hibernate.dialect.Dialect   : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 
2016-08-01 10:36:09.131 INFO 3920 --- [ost-startStop-1] o.h.h.i.ast.ASTQueryTranslatorFactory : HHH000397: Using ASTQueryTranslatorFactory 
2016-08-01 10:36:09.291 INFO 3920 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000228: Running hbm2ddl schema update 
2016-08-01 10:36:09.291 INFO 3920 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000102: Fetching database metadata 
2016-08-01 10:36:09.301 INFO 3920 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000396: Updating schema 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000261: Table found: TEST.PUBLIC.EMAILDATA 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000037: Columns: [quantity, emailto, id, autostart, emailfrom] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000108: Foreign keys: [] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000126: Indexes: [primary_key_2] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000261: Table found: TEST.PUBLIC.STATUS 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000037: Columns: [exchangefile, consolidate, processdate, aggregateall, scriptmaster, sendmail, id, insiderstrade] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000108: Foreign keys: [] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] o.hibernate.tool.hbm2ddl.TableMetadata : HHH000126: Indexes: [primary_key_9] 
2016-08-01 10:36:09.311 INFO 3920 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000232: Schema update complete 

Mein Repository ist:

@Transactional 
public interface EmailDataRepository extends JpaRepository<EmailData,Long>{ 
     @Query("SELECT p FROM EmailData P") 
     public EmailData findLastRow(); 
} 

Und DBConfig ist:

@Configuration 
@EnableTransactionManagement 
@ComponentScan("com.demo.*") 
@PropertySource("classpath:application.properties") 
@EntityScan(basePackages = {"com.demo.model"}) 
@EnableJpaRepositories("com.demo.repository.main") 
public class DBConfig {....} 

Modell:

@Entity 
@Table(name="EmailData") 
public class EmailData { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    Long id; 
    private String emailTo; 
    private String emailFrom; 
    private String quantity; 
    private Boolean autoStart; 
...} 

Antwort

0

Ihre H2 Datenbank-URL sollte die folgende Konfiguration haben

DB_CLOSE_ON_EXIT=FALSE 

Frühlings-Boot-Dokumentation ein Angebot hat:

Wenn aus welchem ​​Grund auch immer, können Sie die Verbindungs-URL für eine eingebettete Datenbank konfigurieren tun sollte darauf, dass die automatische Abschaltung der Datenbank des Behinderten sichergestellt werden, ist . Wenn Sie H2 verwenden, sollten Sie dazu DB_CLOSE_ON_EXIT = FALSE verwenden. Wenn Sie HSQLDB verwenden, sollten Sie sicherstellen, dass shutdown = true nicht verwendet wird. Durch das Deaktivieren des automatischen Herunterfahrens der Datenbank kann Spring Boot steuern, wann die Datenbank geschlossen wird. Dadurch wird sichergestellt, dass es ausgeführt wird, sobald der Zugriff auf die Datenbank nicht mehr benötigt wird.