有没有办法在没有org.bson.types.ObjectId的情况下使用Mongo / Morphia?

时间:2015-10-15 17:05:02

标签: java mongodb morphia

Morphia是JVM的持久性库,在您的应用需要与MongoDB通信时使用。当你使用它时,显然在Mongo / Morphia的土地上,这个唯一的ID必须是org.bson.types.ObjectId

这是真的吗?我有什么理由不能使用Long作为ID,例如:

// Groovy pseudo-code
@Entity
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonInclude(JsonInclude.Include.NON_NULL)
class WidgetEntity {
    @Id
    Long id

    // ...etc.
}

如果 可以只使用Long,那么我使用Long而不是ObjectId放弃了什么?

1 个答案:

答案 0 :(得分:1)

您可以使用Long,但在这种情况下,您需要自己指定一个值。

来自morphia quickstart sample

  

另请注意,我们必须添加一个新字段" id"到我们的酒店课。该   " ID"价值可以是任何持久的类型;像int,uuid或其他   宾语。如果您想要一个自动生成的值,只需将其声明为   的ObjectId。如果您不使用ObjectId,则必须先设置该值   节省。