MongoDB和Morphia - Traditionnal id(Long)而不是ObjectId

时间:2011-12-03 04:39:53

标签: java mongodb morphia

背景

我的REST服务项目是使用Hibernate启动的。我在域类中使用id(Long)作为rest url中标识符的一部分,例如:

http://abc.com/customer-50,其中50是Long id。

Hibernate Annotated类如下:

public class Customer {
@Id
@GeneratedValue
private Long id;
}

现在我需要将我们的设计迁移到Mongodb。自然的选择是使用Morphia,这是一个实体框架。

问题: 在Morphia中,id字段是ObjectId

@Id private ObjectId id;

这会导致问题,因为: 1.它不是自动增量,即http://abc.com/customer-50http://abc.com/customer-51http://abc.com/customer-52

现在变为http://abc.com/customer-4d1b4687a6d5437619000000

  1. 我需要将所有引用类从long更改为objectId。

  2. 是否可以保留原始设计(使用Long id而不是ObjectId)?

  3. 谢谢!