数据库
首页 > 数据库> > java-MongoDB和Morphia-传统ID(长整数)而不是ObjectId

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-50http://abc.com/customer-51http://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