2011-12-03 7 views
3
の伝統ID(ロング)

背景:の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-50http://abc.com/customer-51http://abc.com/customer-52ない 1:Morphiaで 、idフィールドは、これが問題を引き起こします

@Id private ObjectId id; 

をOBJECTIDています。

今ではhttp://abc.com/customer-4d1b4687a6d5437619000000

  1. になる私はOBJECTIDに長いから、すべての参照クラスを変更する必要があります。

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

ありがとう!

+1

一つの問題新しいエンティティを作成する必要があるときはいつでも、サーバーへの余分なラウンドトリップが必要になります。これは、システムの並行性とスループットに影響します。それは目立つかもしれませんが、コストがあります...それを念頭に置いてください。 –

答えて

4

のMongoDBが列を持っている

+0

リンクはもう有効ではありません –

+0

ありがとう、リンクを更新しました – xeraa

関連する問題