java-MongoDB和Morphia-传统ID(长整数)而不是ObjectId
作者:互联网
背景:
我的REST服务项目是使用Hibernate启动的.我在域类中使用id(Long)作为剩余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)?
谢谢!
解决方法:
看看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(再次更新)
标签:mongodb,morphia,java 来源: https://codeday.me/bug/20191101/1987534.html