使用Hibernate生成服务层

时间:2010-06-12 17:37:51

标签: java eclipse hibernate hibernate-tools

我使用Hibernate Tools从数据库架构生成.hbm.xml映射文件和.java文件。我的问题是,有没有选择,也可以生成服务类?这些是我实现store(),find(),delete()等方法的类。 我知道,对于C#,有很多解决方案可以生成几乎所有内容。我正在寻找相同的,但使用Hibernate。有没有?

4 个答案:

答案 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 Taskhbm2dao

但我个人不使用此功能,我会去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> {
   }