2016-08-01 1 views
0

Я использую весеннюю загрузку с базой данных H2. Мое приложение останавливается с текстом ниже на консоли.Весенняя загрузка останавливается, когда я пишу некоторые запросы JPA в репозитории

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 

Мой репозиторий:

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

И DBCONFIG является:

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

Модель:

@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; 
...} 

ответ

0

Ваш H2 URL базы данных должен иметь следующую конфигурацию

DB_CLOSE_ON_EXIT=FALSE 

Spring Загрузочная документация имеет цитату:

Если, по какой-либо причине, вы настроить URL соединения для встроенной базы данных, следует позаботиться, чтобы обеспечить автоматическое отключение в базах данных отключено , Если вы используете H2, вы должны использовать DB_CLOSE_ON_EXIT = FALSE, чтобы сделать это. Если вы используете HSQLDB, вы должны убедиться, что shutdown = true не используется. Отключение автоматического выключения базы данных позволяет Spring Boot контролировать, когда база данных закрыта, тем самым обеспечивая ее, как только доступ к базе данных больше не нужен.