使用异常数据库来休眠DTO

时间:2017-12-07 22:00:52

标签: java spring hibernate

我正在构建一个Spring启动应用程序,它使用REST服务将内容传递到前端

但我的DTO与我的数据库不对应。 Here is a diagram of the database 而我的DTO应该看起来像这样

public class GlobeEntity extends BaseEntity {
//  for all definition years
    private List<Instance> instances;
    class Instance {
//      CountryInstance.definitionYear
        private String definitionYear;
//      for all countries
        private List<Country> countries;
        class Country {
//          Country.countryId
            String id;
//          Country.externalIdentifier
            String externalIdentifier;
//          CountryInstanceCompatibility.total
            String com;
//          CountryInstanceUtility.total
            String uti;
        }
    }
}

这可能与hibernate注释有关吗?

1 个答案:

答案 0 :(得分:0)

对于DTO,从控制器返回该类时转换为JSON取决于您在Spring中配置的JSON序列化程序。然后,您可以使用JSON注释来更好地控制返回的内容。 根据您的工作方式,您可以选择在实体和DTO之间进行转换,并为每个实体和DTO创建一个类。虽然这有点烦人,因为它确实增加了分配更多类和其他类的开销,这取决于两者,如果你在DTO和实体表示中使用相同的类时,它们可能会变得非常混乱。例如,如果您在控制器中使用某种方法,则不清楚这是实体还是DTO。在许多情况下,当您拥有一个控制器时,您返回的响应不是数据库中的资源。