Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以在没有org.bson.types.ObjectId的情况下使用Mongo/Morphia?_Java_Mongodb_Morphia - Fatal编程技术网

Java 有没有一种方法可以在没有org.bson.types.ObjectId的情况下使用Mongo/Morphia?

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

是JVM的持久性库,在应用程序需要与MongoDB通信时使用。当你使用它时,显然在Mongo/Morphia土地上,这个唯一的ID需要是一个

这是真的吗?有什么原因不能对ID使用
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提供了自动递增器?是的,您可能会发现这很有用