我使用Hibernate Tools从数据库模式生成.hbm.xml
映射文件和.java
文件。我的问题是,这有什么选择,也可以生成服务类?这些是我实现store(),find(),delete()等...方法的类。我知道C#有很多解决方案来生成几乎所有的东西。我正在寻找相同的,但与Hibernate。有没有?使用Hibernate生成服务层
1
A
回答
1
生成“服务”对我来说没有多大意义,因为服务通常会实现业务逻辑(Hibernate不会奇迹般地生成)。
现在,如果您的意思是数据访问代码,即DAO(揭露和实现CRUD方法和查找程序),那么Hibernate Tools可以做到这一点。这就是DAO代码(的.java)上Eclipse plugin的捕获选项如下所示:
alt text http://docs.jboss.org/tools/2.0.0.GA/hibernatetools/en/html/images/codegenexporters.png
等效Ant Task是hbm2dao
。
但我个人不使用此功能,我会去duffymo's way。
2
无法生成服务。
你应该只能用Hibernate编写一个通用的DAO接口和实现。
像这样:
package persistence;
import java.io.Serializable;
import java.util.List;
public interface GenericDao<T, K extends Serializable>
{
T find(K id);
List<T> find();
List<T> find(T example);
List<T> find(String queryName, String [] paramNames, Object [] bindValues);
K save(T instance);
void update(T instance);
void delete(T instance);
}
0
Spring Roo可能有你想要的东西。
0
您可以通过声明接口来实现数据访问层,并使用JDK代理实现这些接口,然后调用hibernate方法。细节在这里 - A simple data access layer using hibernate。
我已经实现了这一点,它运作良好,并已发展到满足我的需求。我延长了加(),删除()等方法,也incude命名查询(findQueryName
)和使用泛型的,所以我需要做的声明基本的CRUD的数据访问接口是
public interface SomeObjectDAO extends GenericDAO<SomeObject> {
}
相关问题
- 1. 生成服务图层类
- 2. spring roo vs appfuse生成服务/ dao层
- 3. JPA2.1/Hibernate 5.2使用Hibernate Tools通过ANT生成ddl Maven任务
- 4. Hibernate - 从服务层的DAO获取ScrollableResults
- 5. 测试春天hibernate dao和服务层
- 6. DAO和服务层(JPA/Hibernate + Spring)
- 7. 使用Mockito测试Spring HIbernate JPA服务层
- 8. 如何使用wsdl生成Web服务
- 9. 未使用Liferay 7服务生成器生成的Finder Util类
- 10. 生成HTTP服务
- 11. 生成CXF使用WSDL2Java的Web服务的服务器实现
- 12. 使用svcutil为3个服务生成服务客户端
- 13. 手动使用Hibernate序列生成器
- 14. 服务层=应用层= GRASP控制层
- 15. Spring + Hibernate的:事务提交,但我使用实现Hibernate持久下面的服务层类数据不保留
- 16. 如何在ASP.NET MVC 3项目的服务层中生成URL
- 17. 生成gRPC服务代码
- 18. 选择生成服务器
- 19. 生成Quickbooks Web Connect服务
- 20. 服务器端PDF生成
- 21. 使用票务服务器生成主要ID?
- 22. 使用SOAPUI和HTTPS使用WSDL生成Web服务类
- 23. 从服务层
- 24. Java Hibernate服务类
- 25. 为什么要使用服务层?
- 26. 在服务层(WCF)中使用MEF
- 27. 在服务层上使用接口
- 28. 服务层测试使用了EasyMock
- 29. 使用ASP.NET MVC和服务层Ninject
- 30. 使用RabbitMQ替换服务层
COOL-我在哪里可以找到一个实现? :) – ianpojman 2012-05-02 20:00:23
你必须创建它。 – duffymo 2012-05-02 20:14:17