在我们的系统中,我们从数据库中获取ORM托管实体bean(使用hibernate),然后将它们复制到DTO bean上以发送到UI。
DTO上的大多数属性与实体上的名称相同,但返回类型通常不同,因为引用的任何相关实体都必须转换为仅存储ID或其他DTO。
在我理想的梦想世界中,当我编辑实体的javadocs时,DTO中同名方法的javadocs将被更新以匹配。这可以通过构建工具或eclipse插件来完成。
有没有人见过这样的东西?
答案 0 :(得分:1)
嗯,这绝对是可能的。您需要的是源代码解析器,我建议javaparser。
写两个Visitors,一个读取JavaDocs,另一个读取它们。在两者中,您可能会从VoidVisitorAdapter
开始并覆盖public void visit(MethodDeclaration n, A arg)
和public void visit(JavadocComment n, A arg)
从主类中访问所有这些内容,并在构建期间通过maven(Exec-Maven-Plugin)或ant(Java Task)调用该主类。
答案 1 :(得分:-1)
我认为你想要的可能是不合理的。
不应将DTO映射到实体。如果都一样,为什么需要DTO?
实体的名称通常映射到表名,字段映射到列。如果您获得了实体的字段名称,则可以轻松访问ORM系统中的表对象。这不安全。
此外,DTO应该具有灵活性,以适应UI需求和其他层的需求。因此,它涉及数据传输,转换,组合,比实体更少的字段等。
E.g。您可以将一个DTO中的4个实体或视图数据组合起来进行远程Web服务调用。由于粗粒加工,这是一个性能问题。
总之,如果它是企业级Java EE应用程序,那么DTO是非常必要的。不要复制名称或拥有非常依赖的实体,而是从实体派生。