我需要为项目,阶段和模板做一个状态。
我试图制作一个具有(PhaseID,TemplateID,Status)的地图。 您能给我一个更好的主意吗,我可以拥有什么:项目ID,阶段ID,TemplateId和Status(TO_DO,Done)?
Project类:
@Entity
@Table(name = "projects")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@Size(max = 100)
private java.lang.String name;
@NotNull
private Integer size;
@ManyToMany(cascade = CascadeType.PERSIST)
private List<ProjectPhase> phases = new ArrayList<>();
public Project(){}
public Project(java.lang.String name, Integer size, String status) {
this.name = name;
this.size = size;
this.status = status;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public java.lang.String getName() {
return name;
}
public void setName(java.lang.String name) {
this.name = name;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
public List<ProjectPhase> getPhases() {
return phases;
}
public void setPhases(List<ProjectPhase> phases) {
this.phases = phases;
}
}
阶段类:
@Entity
@Table(name = "phases")
public class ProjectPhase {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@Size(max = 100)
private String name;
@ManyToMany(cascade = CascadeType.PERSIST)
private List<ProjectPhaseTemplate> projectPhaseTemplates;
@ManyToMany(cascade = CascadeType.PERSIST)
private List<Project> projects = new ArrayList<>();
public ProjectPhase() {
}
public ProjectPhase(Long id, String name) {
this.id = id;
this.name = name;
}
public ProjectPhase(String name, List<ProjectPhaseTemplate> projectPhaseTemplates) {
this.name = name;
this.projectPhaseTemplates = projectPhaseTemplates;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<ProjectPhaseTemplate> getProjectPhaseTemplates() {
return projectPhaseTemplates;
}
public void setProjectPhaseTemplates(List<ProjectPhaseTemplate> projectPhaseTemplates) {
this.projectPhaseTemplates = projectPhaseTemplates;
}
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
}
Template类:
@Entity
@Table(name = "template")
public class ProjectPhaseTemplate {
@Id
@GeneratedValue
private Long id;
private String name;
private String url;
public ProjectPhaseTemplate() {
}
public ProjectPhaseTemplate(String name, String url) {
this.name = name;
this.url = url;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
我每个人都没有一个“状态”字段,因为“阶段”可以位于更多项目中,而“模板”可以位于更多阶段中。如果我将“状态”设置为模板,则具有该模板的所有阶段的状态都将相同。
我想成为这样。 如果所有模板都标记为“完成”,则阶段会将状态更改为“完成”。 如果属于项目的所有阶段都标记为“完成”,则项目会将状态更改为“完成” 所以我只需要一个状态模板即可。
答案 0 :(得分:0)
您可以创建一个新类StatusInformation
,其中包含给定项目阶段模板路径及其状态的所有信息。看起来像这样:
public class StatusInformation {
private Project project;
private Phase phase;
private Template template;
private StatusEnum status;
// getters and setters
}
这样,您可以表达以下语句:
“项目Z中使用的Y阶段的模板X处于TODO状态”
对于稍微不同的组合,您可以具有不同的状态值:
“在项目 A 中使用的阶段y中的模板X处于完成状态”