我有一个实体,它有一个唯一的字符串值,我想用它来代替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注解了它?请帮助我解决这个问题。
1条答案
按热度按时间tez616oj1#
我发现了问题,构造函数上缺少@PersistenceCreator注解