【问题标题】:spring boot h2 data initspring boot h2数据初始化
【发布时间】:2018-03-22 17:42:58
【问题描述】:

我正在尝试将初始化数据加载到 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-boot 为我做的,因为我可以保存和检索数据

现在我正在尝试通过将 data-h2.sql 放入资源来初始化数据

数据-h2.sql

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

看起来像是某处的数据导出

HHH000412:休眠核心 {5.0.12.Final}

HHH000206:找不到 hibernate.properties

HHH000021:字节码提供者名称:javassist

HCANN000001:Hibernate Commons 注释 {5.0.1.Final}

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

HHH000227:运行 hbm2ddl 架构导出

HHH000230:架构导出完成

但是当我尝试检索数据时,没有数据

@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();
    }
    }

我错过了什么?在此先感谢...

【问题讨论】:

  • 您能否在问题中添加 application.properties 文件
  • @mrtasln application.properties 文件为空
  • 我可以看看你的数据库配置
  • @mrtasln 我没有

标签: spring spring-boot initialization h2


【解决方案1】:

如果我在spring documentation 中理解正确,您需要添加

spring.datasource.platform=h2

您的应用程序属性的属性。然后spring在classpath中查找名为data-h2.sql的文件并执行。

【讨论】:

    【解决方案2】:

    首先在您的 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") 注释,如下所示

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

    最后将sql脚本文件名data-h2.sql改为data.sql

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 2018-02-14
      • 2018-06-30
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2022-01-18
      • 2018-09-05
      相关资源
      最近更新 更多