2016-12-08 4 views
0

Я пытался создать программу, используя vaadin, весеннюю загрузку и пролет. Однако, когда я пытаюсь получить доступ к программе, JPA не читает правильную базу данных. Вот пример я следующее: https://github.com/mstahv/spring-data-vaadin-crudFlyway не создает правильную таблицу

GameTemplate.java

@Entity 
@Table(name = "GameTemplate") 
public class GameTemplate implements Serializable { 
private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

@NotNull(message = "Part number is required") 
private String partNum; 

private String gameName; 
private Double gameCost; 
private Double ticketCost; 
private Integer numTickets; 
private Integer idealGross; 
private Integer idealPrizes; 
private Integer idealNet; 
//omitted 

public GameTemplate(){ 
    //JPA 
} 
//getters/setters 

GameTemplateRepo.java

public interface GameTemplateRepository extends JpaRepository<GameTemplate, Long> { 

List<GameTemplate> findAllBy(Pageable pageable); 

List<GameTemplate> findByPartNumLikeIgnoreCase(String partnumFilter); 
} 

ресурсы/db.migration/V1__Initial_Schema.sql

CREATE TABLE GameTemplate (
`id` bigint auto_increment, 
`partNum` varchar(12) NOT NULL, 
`gameName` varchar(50) DEFAULT NULL, 
`gameCost` double DEFAULT '0', 
`ticketCost` double DEFAULT NULL, 
`numTickets` int(11) DEFAULT NULL, 
`idealGross` mediumint(9) DEFAULT NULL, 
`idealPrizes` mediumint(9) DEFAULT NULL, 
`idealNet` mediumint(9) DEFAULT NULL, 
//omitted, inserted some data as well. 

Стек:

2016-12-07 20:14:25.818 INFO 18236 --- [ restartedMain] o.f.core.internal.util.VersionPrinter : Flyway 3.2.1 by Boxfuse 
2016-12-07 20:14:25.946 INFO 18236 --- [ restartedMain] o.f.c.i.dbsupport.DbSupportFactory  : Database: jdbc:h2:mem:testdb (H2 1.4) 
2016-12-07 20:14:26.057 INFO 18236 --- [ restartedMain] o.f.core.internal.command.DbValidate  : Validated 1 migration (execution time 00:00.082s) 
2016-12-07 20:14:26.066 INFO 18236 --- [ restartedMain] o.f.c.i.metadatatable.MetaDataTableImpl : Creating Metadata table: "PUBLIC"."schema_version" 
2016-12-07 20:14:26.080 INFO 18236 --- [ restartedMain] o.f.core.internal.command.DbMigrate  : Current version of schema "PUBLIC": << Empty Schema >> 
2016-12-07 20:14:26.080 INFO 18236 --- [ restartedMain] o.f.core.internal.command.DbMigrate  : Migrating schema "PUBLIC" to version 1 - Initial Schema 
2016-12-07 20:14:26.095 INFO 18236 --- [ restartedMain] o.f.core.internal.command.DbMigrate  : Successfully applied 1 migration to schema "PUBLIC" (execution time 00:00.030s). 

Все, кажется, хорошо, но при доступе на локальном хосте:

2016-12-07 20:14:29.680 ERROR 18236 --- [nio-8090-exec-5] o.h.engine.jdbc.spi.SqlExceptionHelper : Table "GAME_TEMPLATE" not found; SQL statement: 

Где в мире он получает «GAME_TEMPLATE»?

+0

Spring ослушается спецификации JPA; используйте его на свой страх и риск –

ответ

0

Это потому, что Spring по умолчанию использует org.springframework.boot.orm.jpa.SpringNamingStrategy, который разделяет имена коробок верблюдов с подчеркиванием. См. this для получения дополнительной информации.

Или вы можете изменить имя таблицы в файле V1__Initial_Schema.sql в Game_Template

+0

Помогло ли это? – Nico

Смежные вопросы