我什么时候需要 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");