gpt4 book ai didi

java - Spring Data MongoDB 标识符作为对象

转载 作者:行者123 更新时间:2023-12-02 09:20:43 28 4
gpt4 key购买 nike

我有一个java类,它的id有一个保存实际id值的对象。如何使用Spring Data MongoDB进行id生成和识别,以及如何定义MongoDB存储库?

示例:

@Document
class A {
@Id
private B id;

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

由于 Spring 无法自动生成 B 类的值,因此会引发异常。

最佳答案

找到了解决方案。

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);
}
}
}

关于java - Spring Data MongoDB 标识符作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com