簡體   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