web-dev-qa-db-ja.com

MongoDBを使用したHibernate

MongoDBとHibernateを統合する方法を示すリソースを探しています(できれば春から)。RDBMSとNoSqlの代替を切り替えることができます。これを行った経験はありますか?

40
adwk

これを簡単に行うことはできません。 Hibernateのポイントは、Javaオブジェクトをリレーショナルデータベースにマッピングすることです。Hibernateは多くの詳細を抽象化しますが、リレーショナルデータベースが外部キーや主キーなどと連携する方法を理解する必要があります。実行するクエリのパフォーマンスへの影響MongoDBでは、列やテーブルではなくオブジェクトに焦点を当てたデータベースを設計するまったく異なる方法が必要です。また、NoSqlデータベースは、両方でうまく機能しない設計を提供します。

67
Jared

Hibernate OGM についてはどうですか? No-SQLデータベースにJPAを提供します。

32
jacktrades

Spring MongoTemplateを使用すると、移行が容易になります(HibernateTemplateに類似)。
その機能の中で、JPAアノテーションのサポートがあります(ただし、どの程度かはわかりません)。
詳細: http://www.springsource.org/spring-data/mongodb

次のものが必要です。

  1. Spring-data-mongodb JARをプロジェクトに追加します(Maven Centralで利用可能)。
  2. プロジェクトにmongo-Java-driver JARを追加します(maven centralで利用可能)。
  3. HibernateTemplateと同様の方法で、提供されたMongoTemplateクラスを使用します。例:mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

コードを使用した具体的な例を次に示します。 se-spring-and-hibernate-with-mongodb

22
Israel Zalmanov

以前に行われた素晴らしい作業があります:

これらのリンクを参照してください。あなたの役に立つでしょう。

4
user2164052

Javaを使用している場合、Hibernate OGMを使用できます。Java NoSQLデータベースの永続性サポート。

詳細については、 http://hibernate.org/ogm/ をご覧ください。

2
piyush shanu

kundera もあり、JPAアノテーションを使用して、mongodbとの間でオブジェクトを読み書きします。休止状態に慣れている場合は、使用するのが非常に簡単です。

私は最近 Morphia を試しました。これは同じアプローチを取りますが、独自の注釈があります。うまくいく

2
thomash

完全を期すために、 PlayORM もMongoDBをサポートするようになりました。 PlayORMはオブジェクトNoSQLマッピングソリューションであるため、POJOを記述し、MongoDBへのマーシャリング/アンマーシャリングの詳細をすべて処理できます。 ドキュメント こちらをご覧ください

1
Easility

http://drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html ここで、Dror Bereznitskyは、sping/hibernateベースのソリューションをmongodbと統合する方法をうまく説明しています。

1
wbartussek

例を挙げましょう、私は似たようなことをしています。 ColdFusionでは、Hibernateが統合されています。Hibernateオブジェクトを保存するには、EntitySave(Obj)を実行する必要があります。ただし、Ormオブジェクトをビルドしてから、mongoDB Coldfusionコンポーネントを使用し、mongo.Save(obj、collectionName)を実行してオブジェクトを保存するだけです。

0
Faisal Abid

Hibernateは必要な機能を提供すると思います。公式ウェブサイトにあるこれを見てください:1つのアプリケーションに複数のNoSQLデータストアを混在させる友情グラフにNeo4jを使用し、ブログ投稿にMongoDBを使用します。または、NoSQLとリレーショナルデータベースを組み合わせます。

参照

0
crnisamuraj