2010-11-19 38 views
3

在我們的系統中,我們從數據庫中獲取ORM託管實體bean(使用hibernate),然後將它們複製到DTO bean以發送到UI。從實體類中自動更新/複製/繼承DTO javadoc

DTO上的大多數屬性都與實體具有相同的名稱,但返回類型通常不同,因爲引用的任何相關實體必須轉換爲僅存儲ID或另一個DTO。

在我理想的夢境中,當我編輯實體的javadoc時,DTO中的同名命名方法上的javadoc會更新爲匹配。這可以通過構建工具或eclipse插件完成。

有沒有人見過這樣的東西呢?

+0

我們在談論什麼方法?如果它是一個DTO,那麼它可能是一個數據結構,沒有任何業務邏輯。 – slnowak 2015-02-22 23:06:20

回答

1

那絕對有可能。你需要的是一個源代碼解析器,我推薦javaparser

寫兩個Visitors,一個用於讀取JavaDocs,另一個用於寫入它們。在這兩個,你可能會開始VoidVisitorAdapter和overrride public void visit(MethodDeclaration n, A arg)public void visit(JavadocComment n, A arg)

讓這一切訪問的從主類和生成過程中通過行家(Exec-Maven-Plugin)或蟻(Java Task)調用主類。

+0

謝謝,這是唯一的答案,理論上它應該起作用。謝謝。 – 2011-07-24 23:26:09

-1

我想你想要什麼可能是不合理的。

DTO不應被映射到實體。如果都一樣,爲什麼你需要一個DTO?

實體的名稱通常映射到表名稱並且字段映射到列。如果您獲得了實體的字段名稱,那麼您可以輕鬆訪問ORM系統中的表格對象。這不安全。

此外,DTO應該靈活適應UI需求和其他層的需求。因此它涉及數據傳輸,轉換,組合,比實體等領域更少的領域。

E.g.您可以將4個實體或視圖的數據組合在一個DTO中以進行遠程Web服務調用。由於粗粒加工,這是一個性能問題。

總之,如果是企業級的Java EE應用程序,那麼DTO是非常必要的。不要複製名稱或擁有非常依賴的實體,而是從實體派生。