繁体   English   中英

Spring 数据 MongoDB 标识符为 object

[英]Spring Data MongoDB identifier as object

我有一个 java class 作为 id 有一个 object 保存实际 id 值。 如何使用 Spring 数据 MongoDB 进行 id 生成和识别,以及如何定义 MongoDB 存储库?

例子:

@Document
class A {
  @Id
  private B id;

}
class B{
 private String id;
 private String idAppGenerator;
}

由于 Spring 无法为 B class 自动生成值,这会引发异常。

找到了解决方案。

Spring 数据存储库的创建方式如下:

@Repository
public interface ARepository extends MongoRepository<A, B>{
//B is the object identity
}

为了自动生成 B 的值,需要创建一个事件:

Component
public class IdentifierListener extends AbstractMongoEventListener<A> {

    @Override
    public void onBeforeConvert(BeforeConvertEvent<A> event){
        if(event.getSource().getId() == null){
            B id = new B();
            id.setId(new ObjectId());
            event.getSource().setId(id);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM