我想就如何创建用于与数据库交互的角度模型类提出建议 假设我的春季JPA实体是Environment.java
@Entity
public class Environment {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name = "ENV_SId", nullable = false)
private Long envSid;
@Column(name = "ENV_NAME",nullable = false)
private String envName;
public Long getEnvSid() {
return envSid;
}
public void setEnvSid(Long envSid) {
this.envSid = envSid;
}
public String getEnvName() {
return envName;
}
public void setEnvName(String envName) {
this.envName = envName;
}
}
我的角度模型类是environment.model.ts
export class Environment {
envName: string;
}
因为主键是自动生成的,所以我将使用我的environment.model.ts类将数据发布到服务器。但是在获取数据的同时,我还需要在我的角度应用程序中将主键envSid
与envName
一起使用。
我需要针对这两种情况创建两个不同的模型吗?在执行POST请求时只有一个envName
的模型,而在执行GET请求时只有envSid
和envName
的一个模型?
答案 0 :(得分:1)
这是我一直在思考的一个问题,以下是我的结论。我很高兴讨论它是否总是有意义。
我使用的原则是:您的模型应具有对完整对象有意义的所有字段。
对于您而言,这意味着id
应该是模型的一部分。
其背后的理由是:
POST
请求)还不是对象,而仅仅是初始化数据。有时,它甚至可能没有映射到模型的特定字段,因此,最好将它们分开。在您的情况下,我确实会有两个模型:EnvironmentInitializeData
和EnvironmentModel
或其他名称,您就会明白。
顺便说一句,由于初始化数据通常仅使用一次且简单易用,因此不一定总是将其表示为类型。
答案 1 :(得分:0)
好的做法是,每个数据传输对象创建1个模型接口。因此,对于您的情况,您应该执行以下操作:
environment.model.ts
Map<String,List<Book>>
environmentToPost.model.ts
export interface Environment {
envName: string;
envSid: number;
}