背景
我的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-50,http://abc.com/customer-51,http://abc.com/customer-52。
现在变为http://abc.com/customer-4d1b4687a6d5437619000000
我需要将所有引用类从long更改为objectId。
是否可以保留原始设计(使用Long id而不是ObjectId)?
谢谢!
答案 0 :(得分:4)
查看 https://code.google.com/p/morphia/source/browse/trunk/morphia/src/main/java/com/google/code/morphia/utils/LongIdEntity.java https://github.com/mongodb/morphia/blob/master/morphia/src/test/java/org/mongodb/morphia/utils/LongIdEntity.java(更新链接)
https://github.com/MorphiaOrg/morphia/blob/master/morphia/src/test/java/xyz/morphia/utils/LongIdEntity.java(再次更新)