【发布时间】:2020-03-28 20:45:02
【问题描述】:
具有嵌套构建器的实体:
@Entity
@Table(name="food")
public class Food {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name="name")
private String name;
@Column(name="type")
private String type;
@Column(name="description")
private String description;
@Column(name="date")
private LocalDate expiration;
@ManyToOne
@JoinColumn(name="container_id", foreignKey = @ForeignKey(name = "FK_FOOD"))
private Container container;
private Food(FoodBuilder foodbuilder) {
this.name = foodbuilder.name;
this.type = foodbuilder.type;
this.description = foodbuilder.description;
this.expiration = foodbuilder.expiration;
}
//getters omitted for brevity
public static class FoodBuilder {
private String name;
private String type;
private String description;
private LocalDate expiration;
public FoodBuilder(String name) {
this.name = name;
}
public FoodBuilder setType(String type) {
this.type = type;
return this;
}
public FoodBuilder setDescription(String description) {
this.description = description;
return this;
}
public FoodBuilder setExpiration(LocalDate expiration) {
this.expiration = expiration;
return this;
}
public Food buildFood(){
return new Food(this);
}
}
}
我知道如何使用 main 方法通过构建器模式创建一个新对象,即
Food food = new Food.FoodBuilder...setters...build()
但是当我通过前端的表单向我的 api 提交信息时,我无法找到如何使用此模式创建对象。
【问题讨论】:
-
如果您使用的是 Servlet,那么您将哪个框架用于后端,那么您可以像在 main 方法中一样构建模式。