【发布时间】:2021-11-04 01:01:07
【问题描述】:
我正在开发一个 spring boot 应用程序 (v2.1.5.RELEASE),其中 h2 作为内存数据库。我创建了一个简单的项目,其中只有一个模型 Person.java,其中只有 3 个 private 字段。我根本没有没有构造函数,但是当我启动应用程序并打开 h2 控制台时,我仍然能够看到从实体 Person 创建的表。我从SO question 中读到,当我们使用 @entity 注释时,需要一个 no-args 构造函数。是强制性的吗?
Person.java
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Person {
@Id
private String name;
private double age;
private String dateOfBirth;
}
主类
@SpringBootApplication
public class CommandLineApp {
public static void main(String[] args) {
SpringApplication.run(CommandLineApp.class);
}
}
【问题讨论】:
-
不指定任何构造函数时,会隐式添加无参数构造函数。
-
@CodeSlave,事实上,我从那个特定问题中看到,实体类必须使用无参数构造函数,但我能够看到在我的 h2 控制台中创建的表,而我的实体类中没有任何构造函数.我想如果实体的无参数构造函数和 h2 创建表之间存在某种联系。
标签: java spring-boot jpa