如何在Spring Data Mongodb中为文档使用自己的id

xqkwcwgp  于 2023-03-07  发布在  Go
关注(0)|答案(1)|浏览(174)

我有一个实体,它有一个唯一的字符串值,我想用它来代替spring mongodb文档中自动生成的objectId。但是,当我保存对象时,它仍然生成一个ObjectId。

@Document(collection="products")
                   class Product {
                       
                       @Id 
                       @Indexed(unique = true,direction = IndexDirection.ASCENDING)
                       String productCode;
                       
                       String descr;
                                              
                       Integer quantity;   
                       
                       public Product(String productCode,String descr,Integer quantity)
                       {
                         this.productCode = productCode;
                         this.descr = descr;
                         this.quantity = quantity;                                              

                       }

以下是存储库定义:

@Repository
                    public interface ProductRepository extends ReactiveMongoRepository<Product,String> {

                    }

以下是保存到存储库的内容,不保存productCode,而是提供自动生成的ObjectId:

{
                    "_id" : ObjectId("63f511be4eaf1f75b27ff928"),       
                    "descr" : "Best in breed watches",
                    "quantity" :  122222                
                   }

为什么提供的productCode被忽略了,我在构造函数中用id和set注解了它?请帮助我解决这个问题。

tez616oj

tez616oj1#

我发现了问题,构造函数上缺少@PersistenceCreator注解

相关问题