3

私はプロジェクトを持っています。このプロジェクトの開始時に、永続性にJDBCではなくHibernateを選択しましたが、Hibernateがこのアプリケーションのすべてのケースに適用できるわけではないことがわかったため、Hibernateが永続化できないこれらのケースではJDBCを使用する必要があります。申請する。最後に、JDBCの代わりにjooqを選択します。したがって、このアプリケーションには2種類の永続性テクノロジー、つまりHibernate&Jooqがあります。ここで、jooqによって作成されたResultSetをHibernateEntityBeansに変換します。Hibernateに関するリソースを検索しましたが、何も見つかりませんでした。HibernateにはそのためのAPIがないようです。

だから、私はいくつかの質問があります!

  1. Hibernateの現在のコンテキストを取得するにはどうすればよいですか?
  2. このコンテキスト(質問1で説明)を使用して、ResultSetのオブジェクトをHibernate Entity Beanに変換するにはどうすればよいですか?

皆さんありがとう。

4

2 に答える 2

3

jOOQのRecord.into ()メソッドとResultQuery.fetchInto()メソッドを見たことがありますか?これらは、jOOQレコードのカスタムPOJOへのマッピングをサポートします。これらのPOJOをjOOQで直接生成するか、自分で定義することができます。JPAアノテーションがPOJOに存在する場合、それらが使用されます。それ以外の場合、jOOQは、メソッドの命名規則に基づいてレコードをPOJOにマップします。

例:

@Entity
public class POJO {
  private int id;

  @Column(name = "ID")
  public void setId(int id) {
    this.id = id;
  }

  public int getId() {
    return id;
  }
}

// Fetch several of the above POJO's into a list
List<POJO> result = 
DSL.using(connection, dialect)
   .select(MY_TABLE.ID)
   .from(MY_TABLE)
   .fetchInto(POJO.class);

// Fetch single POJO's
POJO pojo = 
DSL.using(connection, dialect)
   .select(MY_TABLE.ID)
   .from(MY_TABLE)
   .where(MY_TABLE.ID.equal(1))
   .fetchOne()
   .into(POJO.class);

上記の例では、jOOQを使用してクエリを実行します。オブジェクトをカスタムPOJOに変換することについて話しているのでResultSet、クエリビルダーとしてのみjOOQを使用していると思います。たぶん、その場合でも、jOOQを使用して次のようにJDBCからデータをフェッチできます。ResultSet

ResultSet rs = // [ your querying here ]
List<POJO> result = create.fetch(rs).into(POJO.class);
于 2012-03-17T19:50:22.927 に答える
0

を使用することにしたので、JDBC休止状態があなたのために何をするかをコーディングする必要があります。つまり、Beanから読み取りResultSet、Beanに入力するコードを作成する必要があります。

好き、

MyBean mb = new MyBean();
mb.setValue1(resultSet.get...);

さて、上記を忘れてください。プロジェクトの開始時に、Hibernateを検討することを強くお勧めします。ここで休止状態を開始します。

于 2012-03-16T09:32:56.623 に答える