我使用Hibernate Tools从数据库架构生成.hbm.xml
映射文件和.java
文件。我的问题是,有没有选择,也可以生成服务类?这些是我实现store(),find(),delete()等方法的类。
我知道,对于C#,有很多解决方案可以生成几乎所有内容。我正在寻找相同的,但使用Hibernate。有没有?
答案 0 :(得分: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);
}
答案 1 :(得分:1)
生成“服务”对我来说没有多大意义,因为服务通常实现业务逻辑(Hibernate无法神奇地生成)。
现在,如果你的意思是数据访问代码,即DAO(暴露和实现CRUD方法和查找程序),那么Hibernate Tools可以做到这一点。这是捕获Eclipse plugin下面的 DAO代码(.java)选项:
alt text http://docs.jboss.org/tools/2.0.0.GA/hibernatetools/en/html/images/codegenexporters.png
等效Ant Task为hbm2dao
。
但我个人不使用此功能,我会去duffymo's way。
答案 2 :(得分:0)
Spring Roo可能有你想要的东西。
答案 3 :(得分:0)
您可以通过声明接口来实现数据访问层,并使用JDK代理实现这些接口,然后调用hibernate方法。详细信息如下 - A simple data access layer using hibernate。
我已经实现了这一点并且运行良好并且已经发展到满足我的需求。我扩展了add(),remove()等..方法也包含命名查询(findQueryName
)和使用泛型,所以我需要做的就是声明一个基本的CRUD数据访问接口
public interface SomeObjectDAO extends GenericDAO<SomeObject> {
}