代码之家  ›  专栏  ›  技术社区  ›  Dobes Vandermeer Tahbaza

从实体类自动更新/复制/继承DTO到JavaDocs

  •  3
  • Dobes Vandermeer Tahbaza  · 技术社区  · 15 年前

    在我们的系统中,我们从数据库中获取ORM管理的实体bean(使用hibernate),然后将它们复制到DTO bean上,发送到UI。

    DTO上的大多数属性与实体上的属性具有相同的名称,但返回类型通常不同,因为引用的任何相关实体都必须转换为只存储ID或其他DTO。

    在我理想的梦境中,当我为实体编辑javadocs时,DTO中相同命名方法上的javadocs将被更新以匹配。这可以通过构建工具或Eclipse插件完成。

    有人在外面看到这样的东西吗?

    2 回复  |  直到 11 年前
        1
  •  1
  •   Sean Patrick Floyd    15 年前

    当然有可能。我建议您需要一个源代码解析器 javaparser .

    写两 Visitors 一个读javadocs,另一个写javadocs。在这两种情况下,您可能会从 VoidVisitorAdapter 超驰 public void visit(MethodDeclaration n, A arg) 和 public void visit(JavadocComment n, A arg)

    使所有这些都可以从主类访问,并通过maven调用该主类( Exec-Maven-Plugin 或蚂蚁 Java Task )在建造过程中。

        2
  •  -1
  •   Arjan Tijms Mike Van    11 年前

    我认为你想要的可能不合理。

    DTO不应该映射到实体。如果都一样,为什么需要DTO?

    实体的名称通常映射到表名,字段映射到列。如果您得到了实体的字段名,那么就可以轻松地访问ORM系统中的表对象。这不安全。

    此外,DTO应该是灵活的,以适应UI需求和其他层的需求。所以这是关于数据传输、转换、组合、字段比实体少等等。

    例如,您可以将4个实体或视图数据合并到一个DTO中,以进行远程Web服务调用。由于粗颗粒加工,这是一个性能问题。

    总之,如果它是企业级的JavaEE应用程序,那么DTO是非常必要的。不要复制名称或具有非常依赖的实体,而是从该实体派生。