JPA继承和Dtos

时间:2016-03-22 16:30:03

标签: java json spring jpa

我有一个包含多个DTO的项目,可以在几个松散耦合的组件之间进行交换。

所有人都有这样的名字和身份证明:

public class BaseDto {
    private String id;
    private String name
}

基于此,还有其他几个DTO,它们的检索或任何东西都不应该有任何注释。所以这里没有jpa注释。

在我的jpa组件中,我想扩展Dtos并给它们注释如下:

public class SomethingJpa extends SomethingDto {
   @Column(name = "someProperty")
   public String getSomeProperty() {...}      
}

这是一个干净的数据库访问层和不依赖于JPA的组件不必将完整堆栈作为依赖,但我仍然可以将所有DTO共享给所有组件(以不同的方式传递对象有时JSON )。由于JPA组件仅将基类版本传递给所有其他组件。

这有效,但我只能从一个类继承。对于JPA Context,我希望有一个@MappedSuperclass注释,所以我不必在每个JPA对象中包含id和name。

将注释放在DTO中意味着,我需要为3种不同的用例方法添加注释,使其难以维护。也可能只是立即维护所有DTO并始终在同时更新它们,这是乏味的。 (JSON仅在特殊情况下需要注释,以便更新的DTO意味着更新的JSON)

PS:以任意方式查看JSON作为示例。

0 个答案:

没有答案