我在一个项目中有很多实体,我需要为它们中的每一个创建一个数据访问对象。我认为这些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. 的Symfony2 +学说:工具生成实体
- 5. 用于代码生成的XSD文件,需要提示
- 6. svcutil生成的代码需要xmlinclude
- 7. 任何用于从AST生成JavaScript代码的工具
- 8. 用于GNU/Linux的代码生成工具UML
- 9. 用于生成C代码的工具/ IDE /语言存在
- 10. 用于PHP的代码生成工具/框架
- 11. 用于从Android代码生成可视化图表的工具
- 12. 用于生成asp.net代码的开源工具
- 13. 生成的实体框架代码
- 14. 要求使用UML工具生成StateCharts代码
- 15. C#中的UML代码生成工具
- 16. 生成Java代码的工具过多?
- 17. crm 4.0的代码生成工具
- 18. 基于JPA注释生成ERD(实体关系图)的工具
- 19. 需要SVNEdge代码审查工具
- 20. 代码生成工具所需的指导
- 21. 什么自动代码生成工具可用于Castle ActiveRecord类?
- 22. 哪个工具更有用于生成代码?
- 23. 需要关于Objective-C代码的帮助(WSDL2ObjC生成)
- 24. 实体框架代码生成
- 25. 如何测试代码生成工具?
- 26. C++代码/ XML生成工具
- 27. 代码生成工具测试
- 28. UML到Java代码生成工具
- 29. 实体框架的DbContext代码生成生成不正确的代码
- 30. 生成实体代码,而无需任何配置
如果涉及到基本的CRUD操作,我还会选择通用DAO接口和特定的实体类型实现。 但是,这并没有解决自动命名查询发现和方法生成上述OP的问题。您当然可以在您的CRUD界面中使用namedQuery名称和某种类型的参数映射,但我怀疑这是您所期望的。 –