2012-02-20 53 views
1

Hibernate可用於使用逆向工程生成所有DAO和休眠屬性文件。 但是它生成的DAO代碼在彈簧依賴注入方面並不合適。使用彈簧進行休眠的逆向工程

那麼,我們如何使用hibernate逆向工程技術來生成基於依賴注入原則的spring bean?

+0

你的意思是創建DAO或實體,以及它們有多少? – Ralph 2012-02-20 10:59:04

+0

是的,創建DAO。基本上,當我們使用hibernate創建DAO時,它會在所有DAO中創建「SessionFactory」對象。在Spring中使用它時,我們希望它遵循Spring依賴注入,並將所有DAO的「SessionFactory」注入對象(而不是創建一個)。 – 2012-02-20 11:37:02

回答

2

你應該使用一個通用的DAO,你只需要創建一個指定實體類的子類。或者更現代的方法,如Spring Data JPA或其前身Hades。然後在具體的dao中注意多於一個空類(或者Spring Data JPA/Hades是一個空接口的情況)。

因此,花時間搜索和添加DAO的生成器方法是不值得的。你可以在一個小時內用手寫出超過60個(如果你有一個通用的DAO)

我沒有那麼多的時間去尋找一個通用DAO的例子,所以這是我發現的最好的例子: http://www.codeproject.com/Articles/251166/The-Generic-DAO-pattern-in-Java-with-Spring-3-and它至少有一個「錯誤」結構DAO應該有註釋@Repository而不是@Component。 - 無論如何,這個例子說明了我的意思是通用的DAO。

+0

我明白了。感謝那。如果可能的話,你可以向我提供一小段代碼片段,顯示你的意思。這會讓我更好的理解。 Thanx爲你提供幫助:) – 2012-02-20 11:51:54

+1

@Rohit Jain:你注意到了3個鏈接? – Ralph 2012-02-20 11:59:26

+0

是的,我正在通過他們看。感謝您的幫助。所以最好是編寫你自己的DAO,而不是依靠Hibernate來做。一個很好的方法是使用上面剛剛提到的Generic-DAO模式。我對麼 ?? – 2012-02-20 12:05:26