問題タブ [morphia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
799 参照

java - ファイル内の値から動的にロードされたクラスをプログラムでインスタンス化する方法は?

私は Java のリフレクション API の基本的な知識を持っています。したがって、これは単に方法の問題ではなく、それが可能かどうか、そして私が最善の方法で解決策を講じているかどうかの問題です。

相互に関連する複数のプロジェクトの受け入れテストを行っています。これらの各プロジェクトは、社内の抽象化 API を使用して MongoDB ストアからデータを取得します。このテストを容易にするために、各コンポーネントには事前にロードされたデータがデータベースで使用可能である必要があります。

morphia ORM ライブラリを使用して複数のインスタンスをロードするために、DTO (コンパイル済みクラス バイナリ) を受け入れるコマンド ライン ツールを構築しています。私たちのチームの各メンバーが、必要な量のレコードをインスタンス化するための DTO (jar またはディレクトリ形式) とファイル (csv またはその他) を cli を介して渡すジェネレーターを実行できるようにしたいと考えています。

クラスの読み込みが正常に機能していURLClassLoaderます。今、ファイルのデータを使用して、このクラスのインスタンスをインスタンス化しようとしています。

これは可能ですか?シリアル化されたオブジェクトはより良いアプローチでしょうか?

0 投票する
1 に答える
520 参照

java - Play Morphia MongoDB : タイプ Filter は既に定義されています

Morphia for MongoDB で Play Java アプリケーションを起動しようとすると、すでにコンパイルされている Filter タイプの再コンパイルが原因で、次のスタックトレースが表示されます。

0 投票する
3 に答える
2864 参照

java - Javaを使用してmorphia mongodbで地理空間を見つける

モルフィア フレームワークを使用して、いくつかのジオ ロケーション ポイントをクエリしたいと思います。緯度、経度、および半径 (100 km) を "Near" メソッドで使用して、現在地周辺の他のクエリを実行し、10 件の結果を制限します。ちょうどこのような :

エラーにはなりませんが、結果は、私の周りで私の半径 (100km) の範囲外の位置を示しています。したがって、結果を照会するときに私の半径は関係ありません。

クエリステートメントに関する私の問題は何ですか?

よろしくお願いします

0 投票する
4 に答える
4997 参照

java - DAO と依存性注入、アドバイスはありますか?

DAOパターンを使用するのはこれが初めてです。これまで読んだことから、このパターンを実装すると、呼び出し元のコード (コントローラー) を永続化の実装から分離するのに役立ちます。つまり、特定のデータベースやサードパーティ ライブラリの使用に制限されたくありません。

MongoDB と morphia (例として) を使用して (TDD 方式で) テスト コードを作成し、morphia が提供するBasicDAOクラスを使用します。

私が知る限り、拡張にBasicDAO<T, V>は Morphia オブジェクトと Mongo オブジェクトを受け入れるコンストラクターが必要です。これらは非常に具体的な (サード パーティの) 型であり、DAO クラス自体の外に出てほしくありません。

プラグ可能なアーキテクチャをさらに増やすにはどうすればよいですか? つまり、実際のソースの外部で、特定の構成引数を持つ特定の DAO を使用するようにアプリケーションを構成できるようにするには、何を調べればよいでしょうか?

0 投票する
1 に答える
588 参照

java - FactoryなしでDAOを呼び出す方法は?

ここの投稿によると、次の DAO 階層があります。

GenericDAO.java

GenericDAOMongoDBImpl.java

ObjectDAO.java

ObjectDAOMongoDBImpl.java

ObjectDAO?をどのように使用すればよいか混乱しています。現時点では、ファクトリ メソッドはやり過ぎだと思います。代わりに、次のようにクライアントから DAO を単純に構築する方が理にかなっています。

動的であるため、引数を受け入れるようにファクトリ メソッドclazzを変更しようとする悪夢が証明され、途中で汎用インターフェイスが壊れた可能性があります。

よりクリーンな方法はありますか?提供されたmorphiaを単純に拡張することもできましたが、 MongoDBからJDBCなどBasicDAO<T, K>に簡単に変更することはできませんでした。

0 投票する
2 に答える
927 参照

mongodb - Morphiaを使用してMongoに埋め込まれたマップエントリを更新する

マップをコレクションとして保存するコレクションがありembeddedます。マップの個々のエントリ内のフィールドを更新する必要があります。

それを行う方法はありますか?

map指定されたキーに一致する内のフィールドを更新します。で使用MorphiaしていますDaos

0 投票する
2 に答える
3120 参照

mongodb - morphiaを使用してmongodbにHashMapを保存するにはどうすればよいですか?

morphiaを使用してmongodbにHashMapを保存するにはどうすればよいですか?

これが morphia のバグなのか、それとも私のやり方が間違っているだけなのかはわかりません。

私はこのドメインモデルを持っていると言います

BasicDAO repo.save(personInstance) を拡張するクラスを使用してこれを保存しようとすると、次のエラーが表示されます: (UsedView は上記の例の Thing に相当します)

java.lang.IllegalArgumentException: クラス com.model.designed.UsedView を org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205) でシリアライズできません org.bson.BSONEncoder.putMap(BSONEncoder.java:245) で org. .bson.BSONEncoder._putObjectField(BSONEncoder.java:177) の org.bson.BSONEncoder.putObject(BSONEncoder.java:121) の org.bson.BSONEncoder.putObject(BSONEncoder.java:67) の com.mongodb.OutMessage。 putObject(OutMessage.java:189) で com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:245) で com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:209) で com.mongodb.DBCollection.insert (DBCollection.java:66) com.mongodb.DBCollection.save(DBCollection.java:622) で com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:731) com.google.code.morphia で。 DatastoreImpl.save(DatastoreImpl.Java:793) com.google.code.morphia.dao.BasicDAO.save(BasicDAO.java:109) で com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:787)...

次に、変更した場合:

それはうまく保存されます。

何かご意見は?

とても有難い!

0 投票する
1 に答える
648 参照

java - モルヒネは悪いデータを処理します

私がmongoにこのようなjsonを持っているとしましょう:

そしてこのようなJavaクラス:

これは機能します(jsonは値を文字列ではなくintとして格納する必要があることは知っていますが、その部分は制御しません)。

今、私がこのようなモルヒネのようなデータを持っているときは、次のようになります。

私は回避策を探しています(私が望む動作は、空の文字列がnullと同じように扱われることです)。

私がこれまでに持っている唯一の回避策は次のとおりです。

しかし、逆シリアル化の動作をカスタマイズするIntegerプロパティにアノテーションを掛ける方法を期待しています。

0 投票する
1 に答える
289 参照

unmarshalling - Morphia を使用した多次元配列の格納

Morphia で多次元配列の読み取り/非整列化に問題があります。

次のクラス:

適切にマーシャリングされ、mongodb に格納されますが、それを読み取ると、double[][] を構築できないという例外が発生します。カスタム TypeConverter を使用しようとしましたが、そのような型に対して呼び出されません。このようなメンバーを使用すると、同様の問題が発生します。

配列で期待される型を morphia が把握するのに役立つ注釈は見つかりませんでした。これはまだサポートされていないと思います。助言がありますか ?

前もって感謝します。

0 投票する
1 に答える
3832 参照

java - MongoDBとMorphia-ObjectIdではなく従来のID(Long)

バックグラウンド:

私のRESTサービスプロジェクトはHibernateを使用して開始されました。ドメインクラスでID(Long)を残りのURLの識別子の一部として使用します。次に例を示します。

http://abc.com/customer-50、ここで50はロングIDです。

HibernateAnnotatedクラスは次のとおりです。

次に、デザインをMongodbに移行する必要があります。自然な選択は、エンティティフレームワークであるMorphiaを使用することです。

問題: Morphiaでは、idフィールドはObjectIdです。

これにより問題が発生します。1。自動インクリメントではありません。つまり、http ://abc.com/customer-50、http: //abc.com/customer-51、http : //abc.com/customer- 52

これでhttp://abc.com/customer-4d1b4687a6d5437619000000になります

  1. すべての参照クラスをlongからobjectIdに変更する必要があります。

  2. 元のデザイン(ObjectIdの代わりにLong idを使用)を維持することは可能ですか?

ありがとう!