2010-06-12 36 views
1

我使用Hibernate Tools從數據庫模式生成.hbm.xml映射文件和.java文件。我的問題是,這有什麼選擇,也可以生成服務類?這些是我實現store(),find(),delete()等...方法的類。我知道C#有很多解決方案來生成幾乎所有的東西。我正在尋找相同的,但與Hibernate。有沒有?使用Hibernate生成服務層

回答

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 Taskhbm2dao

但我個人不使用此功能,我會去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

COOL-我在哪裏可以找到一個實現? :) – ianpojman 2012-05-02 20:00:23

+0

你必須創建它。 – duffymo 2012-05-02 20:14:17

0

您可以通過聲明接口來實現數據訪問層,並使用JDK代理實現這些接口,然後調用hibernate方法。細節在這裏 - A simple data access layer using hibernate

我已經實現了這一點,它運作良好,並已發展到滿足我的需求。我延長了加(),刪除()等方法,也incude命名查詢(findQueryName)和使用泛型的,所以我需要做的聲明基本的CRUD的數據訪問接口是

public interface SomeObjectDAO extends GenericDAO<SomeObject> { 
    }