数据初始化在 Spring 启动休眠应用程序中不起作用



我正在学习春季启动并尝试我的第一个示例应用程序,但一直坚持初始化数据。我可以创建表,但我的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;
}

data.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来检索和设置数据。

您可以在Category类中手动添加getter setter,或者如果您使用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方法的注释

相关内容