1

我使用 Hibernate Tools 从 DB 模式生成.hbm.xml映射文件和文件。.java我的问题是,还有什么选项可以生成服务类吗?这些是我实现 store()、find()、delete() 等方法的类。我知道对于 C#,有很多解决方案可以生成几乎所有内容。我正在寻找相同的,但与休眠。有没有?

4

4 回答 4

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);
}
于 2010-06-12T17:43:38.543 回答
1

生成“服务”对我来说没有多大意义,因为服务通常实现业务逻辑(Hibernate 无法神奇地生成)。

现在,如果您的意思是数据访问代码,即 DAO(公开和实现 CRUD 方法和查找器),那么Hibernate 工具可以做到这一点。这是捕获Eclipse 插件的DAO 代码 (.java)选项,如下所示:

替代文本 http://docs.jboss.org/tools/2.0.0.GA/hibernatetools/en/html/images/codegenexporters.png

等效的Ant 任务hbm2dao.

但我个人不使用此功能,我会采用 duffymo 的方式

于 2010-06-12T23:24:24.127 回答
0

Spring Roo可能有你想要的。

于 2010-06-12T17:58:52.913 回答
0

您可以通过声明接口来实现数据访问层,并使用 JDK 代理实现这些接口,然后调用 hibernate 方法。详细信息在这里 -使用 hibernate 的简单数据访问层

我已经实现了这一点,它运行良好,并且已经满足我的需求。我扩展了 add()、remove() 等方法以包括命名查询 ( findQueryName) 和泛型的使用,所以我需要做的就是声明一个基本的 CRUD 数据访问接口

   public interface SomeObjectDAO extends GenericDAO<SomeObject> {
   }
于 2010-06-13T02:04:09.000 回答