Java JPA继承与DTO

Java JPA继承与DTO,java,json,spring,jpa,Java,Json,Spring,Jpa,我有一个项目,有几个DTO,可以在几个松散耦合的组件之间交换 它们都有这样的名称和id: public class BaseDto { private String id; private String name } public class SomethingJpa extends SomethingDto { @Column(name = "someProperty") public String getSomeProperty() {...} }

我有一个项目,有几个DTO,可以在几个松散耦合的组件之间交换

它们都有这样的名称和id:

public class BaseDto {
    private String id;
    private String name
}
public class SomethingJpa extends SomethingDto {
   @Column(name = "someProperty")
   public String getSomeProperty() {...}      
}
基于此,还有一些其他DTO不应该有任何注释用于检索或其他任何内容。所以这里没有jpa注释

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

public class BaseDto {
    private String id;
    private String name
}
public class SomethingJpa extends SomethingDto {
   @Column(name = "someProperty")
   public String getSomeProperty() {...}      
}
这是一个干净的数据库访问层,不依赖JPA的组件不必拥有完整的堆栈作为依赖项,但我仍然可以将所有DTO共享给所有组件(这些组件以不同的方式传递对象,有时是JSON)。因为JPA组件只将基类版本传递给所有其他组件

这是可行的,但我只能从一个类继承。对于JPA上下文,我希望有一个@MappedSuperclass注释,这样我就不必在每个JPA对象中都包含id和名称

将注释放在DTO中意味着,我需要将3+种不同用例方法的注释放在DTO中,使它们难以维护。也可能是一次维护所有DTO,并总是同时更新它们,这很乏味。(JSON只在特殊情况下需要注释,因此更新的DTO意味着更新的JSON)

PS:请参见JSON作为任意方式的示例