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

时间:2010-11-19 23:35:25

标签: java javadoc

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

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

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

有没有人见过这样的东西?

2 个答案:

答案 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是非常必要的。不要复制名称或拥有非常依赖的实体,而是从实体派生。