46

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

4

10 に答える 10

72

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

于 2010-01-28T13:05:52.007 に答える
34

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

于 2013-01-12T12:07:16.843 に答える
24

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

次のものが必要です。

  1. spring-data-mongodb JARをプロジェクトに追加します(Maven Centralで利用可能)。
  2. プロジェクトにmongo-java-driverJARを追加します(mavencentralで利用可能)。
  3. 提供されているMongoTemplateクラスを、HibernateTemplateと同様の方法で使用します。例えば: mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

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

于 2011-12-23T19:15:29.300 に答える
5

Javaを使用している場合は、HibernateOGMを使用できます。HibernateOGMはNoSQLデータベースのJavaPersistenceサポートを提供します。

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

于 2017-02-10T11:19:51.780 に答える
4

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

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

于 2013-03-14T05:18:26.957 に答える
2

また、JPAアノテーションを使用してオブジェクトをmongodbとの間で読み書きするkunderaもあります。Hibernateに精通している場合は、使用するのが非常に簡単なはずです。

私は最近、同じアプローチを採用しているが、独自の注釈を付けたMorphiaを試しました。それはうまくいきます

于 2012-09-12T09:30:34.923 に答える
1

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

于 2011-08-15T05:16:45.980 に答える
1

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

于 2013-09-16T08:18:01.973 に答える
0

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

于 2010-10-24T21:56:29.517 に答える
0

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

参照

于 2019-05-09T08:27:04.157 に答える