【问题标题】:Data initialization doesn't work in spring boot hibernate app数据初始化在 Spring Boot Hibernate 应用程序中不起作用
【发布时间】:2020-02-23 16:55:08
【问题描述】:

我正在学习 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;

}

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 和构造函数对你有帮助吗?
  • 但我正在使用 Lombok。它不应该在旅途中照顾 getter/setter 吗?
  • 你用过getter/setter注解吗?
  • 还没有,我试试这个
  • Getter/Setter 注释对我不起作用,但是当我通过右键单击生成 getter 和 setter 时,我能够获取数据。我应该如何使用Getter/Setter注解而不需要添加getter和setter?

标签: java hibernate spring-boot jpa


【解决方案1】:

您需要添加 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 方法添加了注解

【讨论】:

  • 我复制了你分享的代码,但它仍然不适合我。
  • 我只得到 [{},{},{}]
  • 仅保留数据和表格注释。删除 rest,因为 Data 自己负责 getter/setter、构造函数和 toString 方法。让我知道它是否有效。
  • 做一件事,在班级级别删除所有不相关的注释。您最好在字段级别添加 getter/setter 注释,然后告诉我。
猜你喜欢
  • 1970-01-01
  • 2012-05-03
  • 2019-11-28
  • 1970-01-01
  • 2019-09-06
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
相关资源
最近更新 更多