我什么时候需要 Spring 实体中的构造函数?
When do I need constructor in an Spring entity?
我是 Spring 的新手,现在正在从事一个基于 Spring Boot 的 Java 项目。当我使用 Entity Framework 时,我看到了用于延迟加载的类似用法。但我不确定 Spring 框架是否如此。你能解释一下为什么构造函数用于 Spring 中的某些实体 类 吗?
public class Employee extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_gen")
private long id;
@Column(nullable = false)
private String name;
public Employee(
@Nonnull String name
) {
this.name = name;
}
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public boolean equals(Object other) {
return super.equals(other);
}
}
如果你想在字段中设置值并且不想使用 getter setter 那么你只需将值作为构造函数传递,这样它就会自动初始化对象;
否则,你必须这样做
没有构造函数
Employee emp = new Employee ();
emp.setName("ex");
有构造函数
Employee emp = new Employee ("ex");
我是 Spring 的新手,现在正在从事一个基于 Spring Boot 的 Java 项目。当我使用 Entity Framework 时,我看到了用于延迟加载的类似用法。但我不确定 Spring 框架是否如此。你能解释一下为什么构造函数用于 Spring 中的某些实体 类 吗?
public class Employee extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_gen")
private long id;
@Column(nullable = false)
private String name;
public Employee(
@Nonnull String name
) {
this.name = name;
}
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public boolean equals(Object other) {
return super.equals(other);
}
}
如果你想在字段中设置值并且不想使用 getter setter 那么你只需将值作为构造函数传递,这样它就会自动初始化对象;
否则,你必须这样做
没有构造函数
Employee emp = new Employee ();
emp.setName("ex");
有构造函数
Employee emp = new Employee ("ex");