2017-10-11 79 views
0

我試圖加載初始化數據至h2春天開機H2數據初始化

我有用戶模型

@Entity 
public class User { 
    @Id 
    @GeneratedValue 
    private Long id;  
    private String login; 
    private String password; 

    public User() { 
    } 

    public User(String login, String password) { 
     //this.id = id; 
     this.login = login; 
     this.password = password; 
    } 
    //...getters and setters 
} 

我的倉庫

@Repository 
public interface UsersRepository extends CrudRepository<User, Long> { 
} 

我沒有實現UsersRepository的。看起來spriing引導爲我做的,因爲我可以保存和retreive數據

現在我想通過把數據h2.sql到資源初始化數據

數據h2.sql

INSERT INTO users (login, password) VALUES 
    ('user1', 'pass1'), 
    ('user2', 'pass2'); 

看起來像數據導出地方

HHH000412:Hibernate的核心{} 5.0.12.Final

HHH000206:hibernate.properties找不到

HHH000021:字節碼供應商名稱:Javassist是

HCANN000001:Hibernate的共享註釋{} 5.0.1.Final

HHH000400:使用方言:org.hibernate.dialect.H2Dialect

HHH000227:運行就是hbm2ddl架構出口

HHH000230:架構出口完成

但是,當我試圖retreive數據,沒有數據

@RestController 
@RequestMapping("/api") 
public class ApiController { 

    final UsersRepository usersRepository; 

    public ApiController(UsersRepository usersRepository) { 
     this.usersRepository = usersRepository; 
    } 

    @GetMapping("/users") 
    public Iterable<User> getUsers() { 
     return usersRepository.findAll(); 
    } 
    } 

我失蹤了?在此先感謝...

+0

您可以在您的問題 – mrtasln

+0

@mrtasln應用程序中添加** application.properties **文件。屬性文件爲空 – Coder

+0

我可以看到您的數據庫配置 – mrtasln

回答

0

首先在你的application.properties添加連接屬性文件

spring.datasource.url=jdbc:h2:~/Desktop/Database/test;DB_CLOSE_ON_EXIT=FALSE; 
spring.datasource.driver-class-name=org.h2.Driver 
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 

然後

添加您的模型對象@Table(name = "users") anotation像下面

@Entity 
@Table(name = "users") 
public class User { 
.... 

} 

最後修改SQL腳本文件名data-h2.sqldata.sql

0

如果我理解正確的話在spring documentation您需要將

spring.datasource.platform=h2

屬性添加到您的應用程序屬性。然後spring會在classpath中搜索名爲data-h2.sql的文件並執行它。