[英]A different object with the same identifier using Spring data jpa with Hibernate
[英]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.