1

Hibernate Toolsを使用して、DBスキーマから.hbm.xmlマッピングファイルとファイルを生成します。.java私の質問は、サービスクラスも生成するオプションはありますか?これらは、store()、find()、delete()などのメソッドを実装するクラスです。C#には、ほとんどすべてを生成するための多くのソリューションがあることを私は知っています。同じものを探していますが、Hibernateを使用しています。ありますか?

4

4 に答える 4

2

サービスを生成するオプションはありません。

Hibernateを使用して1つの汎用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メソッドとファインダーの公開と実装)である場合、HibernateToolsはそれを行うことができます。これは、以下に示す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

SpringRooはあなたが望むものを持っているかもしれません。

于 2010-06-12T17:58:52.913 に答える
0

インターフェイスを宣言し、JDKプロキシを使用してこれらを実装し、Hibernateメソッドを呼び出すだけで、データアクセス層を実装できます。詳細はこちら-Hibernateを使用した単純なデータアクセス層

私はこれを実装しましたが、うまく機能し、私のニーズを満たすように成長しました。add()、remove()などのメソッドを拡張して、名前付きクエリ(findQueryName)とGenericsの使用も含めるようにしたので、基本的なCRUDデータアクセスインターフェイスを宣言するために必要なのは

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