java - 数据初始化在 Spring Boot Hibernate 应用程序中不起作用
问题描述
我正在学习 spring boot 并尝试我的第一个示例应用程序,但一直坚持数据初始化。我能够创建表,但我的 data.sql 文件没有执行。以下是我的申请文件:
spring.jpa.show-sql=true
spring.h2.console.enabled=true
spring.datasource.initialization-mode=always
类别:
@Entity
@NoArgsConstructor
@Data
@Table(name="category")
public class Category {
@Id
private Long id;
//Travel, Grocery,...
private String name;
}
数据.sql:
insert into category values (1,'Travel')
insert into category values (2,'Auto Loan')
insert into category values (3,'Travel')
控制器:
package com.example.codeengine.expense.controller;
import java.util.Collection;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.codeengine.expense.model.Category;
import com.example.codeengine.expense.repository.CategoryRepository;
@RestController
@RequestMapping("/api")
public class CategoryController {
private CategoryRepository categoryRepository;
public CategoryController(CategoryRepository categoryRepository) {
super();
this.categoryRepository = categoryRepository;
}
@GetMapping("/categories")
Collection<Category> categories(){
System.out.println(categoryRepository.findAll());
return categoryRepository.findAll();
}
}
有人可以在这里帮助我吗?
解决方案
您需要添加 getter-setter 来检索和设置数据。
您可以在类中手动添加 getter-setter,Category
或者如果您正在使用,Lombok
则需要在类级别添加注释,如下所示:
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Data
@Table(name="category")
public class Category {
@Id
private Long id;
//Travel, Grocery,...
private String name;
}
我为getter-setter、构造函数和 toString 方法添加了注释。
推荐阅读
- angular - 将角度动画应用于组件
- kubernetes - 如何从 kubernetes(GKE) 中删除图像 - 容器图像“
:latest" 已经存在于机器上 - algorithm - 在有向图中查找可达顶点
- cuda - cuda 从设备内存中复制内核中动态 malloc 的数据
- sapui5 - sap.m.TablePersoController 多表个性化
- system-verilog - SystemVerilog 中单位常量文字的符号扩展
- python - 按其他数据框列过滤熊猫行
- xml - 如何使用 powershell 转换 XML 中的属性?
- php - 如何多次更新行laravel
- c# - SqlServer2012-错误 40-无法在 SQL Server 中打开连接