我在一個項目中有很多實體,我需要爲它們中的每一個創建一個數據訪問對象。我認爲這些DAO將是無狀態的會話bean,每個都有一個實體管理器注入它(我不確定這個,但是因爲我將在JBoss AS的上下文中使用它們,這看起來是合理的。 )。
有沒有可以掃描我的實體類,處理它們的註釋併爲我生成這些bean的任何工具(理想情況下,一個maven插件)?每個bean應該公開創建或刪除實體的方法,以及作爲單獨方法的其相應實體類的每個命名查詢。 更確切地說,我想要這樣的文章:
http://community.jboss.org/people/ilya40umov/blog/2011/01/06/genericejb-based-jpa-entitymanager-extension
但每個命名查詢具有不同的方法。 我將使用JPA 2.0和Hibernate 4.0。提前致謝!
編輯:愚蠢的我,我忘了提,我沒有使用彈簧和術語DAO只是用來說明我想要什麼......需要用於實體DAO的代碼生成工具
4
A
回答
0
1
看看你可以使用泛型和反射,使類似的東西
public interface IDao<T> {
public <A extends Serializable> T getElementByID(A x);
public Long getRowsCount();
public List<T> getAll();
public List<T> getAll(String order);
public void saveOrUpdateElement(T x);
public void updateElement(T x);
public void saveElement(T x);
public void deleteElement(T x);
public void setClase(Class<T> clase);
public Class<T> getClase();
public void mergeElement(T x);
public T getFirst();
}
的方法public void setClase(類化酶);讓所有去魔法,所以如果您需要查詢爲x,那麼你設置的類別和例如GETALL(的implementaton)將
public List<T> getAll(){
return session.createQuery("from "+getClase().getSimpleName()).list();
}
4
Telosys工具是專爲這類任務 的它從數據庫模型
生成代碼見https://sites.google.com/site/telosystools/
您可以使用此教程https://sites.google.com/site/telosystutorial/springmvc-jpa-springdatajpa的一部分只生成JPA部分
您也可以創建自己的模板以匹配您自己的需求(或修改現有模板)
相關問題
- 1. DAO生成工具使用純JDBC
- 2. Sharepoint代碼生成工具
- 3. 防止在實體框架中生成導航屬性代碼生成工具
- 4. 用於代碼生成的XSD文件,需要提示
- 5. 用於生成asp.net代碼的開源工具
- 6. 用於PHP的代碼生成工具/框架
- 7. 用於生成C代碼的工具/ IDE /語言存在
- 8. 用於從Android代碼生成可視化圖表的工具
- 9. 生成的實體框架代碼
- 10. crm 4.0的代碼生成工具
- 11. C#中的UML代碼生成工具
- 12. 生成Java代碼的工具過多?
- 13. 基於JPA註釋生成ERD(實體關係圖)的工具
- 14. 需要SVNEdge代碼審查工具
- 15. 代碼生成工具所需的指導
- 16. 哪個工具更有用於生成代碼?
- 17. 什麼自動代碼生成工具可用於Castle ActiveRecord類?
- 18. 實體框架代碼生成
- 19. C++代碼/ XML生成工具
- 20. 如何測試代碼生成工具?
- 21. 生成實體代碼,而無需任何配置
- 22. 如何使用休眠工具生成自定義的DAO
- 23. 我需要編寫什麼代碼才能生成此代碼?
- 24. Advantage數據庫ORM工具或代碼生成工具
- 25. 使用文本生成UML實體關係圖的工具?
- 26. 用於JPA實體的DTO生成器
- 27. 自動生成C#代碼:ApexSql代碼或實體框架?
- 28. 用於生成實體類型的Scaffold-DbContext的替代方案
- 29. 需要一個用於intelliJ和Eclipse的Java代碼分析工具
- 30. 具備HTML - 需要使用代碼
如果涉及到基本的CRUD操作,我還會選擇通用DAO接口和特定的實體類型實現。 但是,這並沒有解決自動命名查詢發現和方法生成上述OP的問題。您當然可以在您的CRUD界面中使用namedQuery名稱和某種類型的參數映射,但我懷疑這是您所期望的。 –