Java 有没有一种方法可以在没有org.bson.types.ObjectId的情况下使用Mongo/Morphia?
是JVM的持久性库,在应用程序需要与MongoDB通信时使用。当你使用它时,显然在Mongo/Morphia土地上,这个唯一的ID需要是一个 这是真的吗?有什么原因不能对ID使用Java 有没有一种方法可以在没有org.bson.types.ObjectId的情况下使用Mongo/Morphia?,java,mongodb,morphia,Java,Mongodb,Morphia,是JVM的持久性库,在应用程序需要与MongoDB通信时使用。当你使用它时,显然在Mongo/Morphia土地上,这个唯一的ID需要是一个 这是真的吗?有什么原因不能对ID使用Long,例如: // Groovy pseudo-code @Entity @JsonIgnoreProperties(ignoreUnknown=true) @JsonInclude(JsonInclude.Include.NON_NULL) class WidgetEntity { @Id Long
Long
,例如:
// Groovy pseudo-code
@Entity
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonInclude(JsonInclude.Include.NON_NULL)
class WidgetEntity {
@Id
Long id
// ...etc.
}
如果可以只使用
Long
,那么使用Long
而不是ObjectId
,我该放弃什么呢?您可以使用Long
,但在这种情况下,您需要自己指定一个值
来自morphia:
还要注意的是,我们必须在Hotel类中添加一个新字段“id”。这个
“id”值可以是任何可持久化的类型;像int、uuid或其他
对象如果您想要一个自动生成的值,只需将其声明为
目标。如果不使用ObjectId,则必须在
储蓄
啊,gotchya谢谢@wero(+1),你能确认一下吗:
Long
很好,但我需要我自己的自动递增机制,是吗?如果是这样的话,Morphia(或其他人)是否为这些ID提供了自动递增器?是的,您可能会发现这很有用