背景:のMongoDBとMorphia - 代わりのObjectId
私のRESTサービスプロジェクトは、休止状態を使用して起動しました。私は残りのIDの識別子の一部としてドメインクラスでid(Long)を使用します。たとえば、
http://abc.com/customer-50(50はLong IDです)。
にHibernate注釈付きクラスは以下の通りです:
public class Customer {
@Id
@GeneratedValue
private Long id;
}
今、私はMongoDBのに私たちのデザインを移行する必要があります。自然な選択は、エンティティフレームワークであるMorphiaを使用することです。
問題:それは自動インクリメント、すなわちhttp://abc.com/customer-50、http://abc.com/customer-51、http://abc.com/customer-52ない 1:Morphiaで 、idフィールドは、これが問題を引き起こします
@Id private ObjectId id;
をOBJECTIDています。
今ではhttp://abc.com/customer-4d1b4687a6d5437619000000
になる私はOBJECTIDに長いから、すべての参照クラスを変更する必要があります。
元のデザイン(ObjectIdの代わりにロングIDを使用)を維持することは可能ですか?
ありがとう!
(リンクは更新)
https://code.google.com/p/morphia/source/browse/trunk/morphia/src/main/java/com/google/code/morphia/utils/LongIdEntity.javahttps://github.com/mongodb/morphia/blob/master/morphia/src/test/java/org/mongodb/morphia/utils/LongIdEntity.javaを見てみましょう:これを使用してhttp://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-SequenceNumbers –一つの問題新しいエンティティを作成する必要があるときはいつでも、サーバーへの余分なラウンドトリップが必要になります。これは、システムの並行性とスループットに影響します。それは目立つかもしれませんが、コストがあります...それを念頭に置いてください。 –