使用JPA时,如何在mongodb中将_id保存为ObjectId字符串?

时间:2019-08-13 06:46:14

标签: java mongodb spring-data-jpa

我有一个数据库模型

@Document(collection = "_User")
public class User {

    @Id
    @Field("_id")
    private String id;
    @Field("email")
    private String email;
}

和道

public interface UserRepo extends CrudRepository<User, String> {
}

当我在mongo中保存新文档时。

    User user= new User();
    user.setEmail("123456@123.com");
    user.setId(new ObjectId().toString());
    User save = userRepo.save(user);

最终在mongo中发现_id字段是一个ObjectId("1234abcd1234abcd1234abcd")之类的ObjectId

使用JPA时,如何在mongodb中将_id保存为ObjectId字符串?

我在spring源代码中找到了converId方法

if (id instanceof String) {
    return ObjectId.isValid(id.toString()) ? conversionService.convert(id, ObjectId.class) : id;
}

看来,如果id是一个有效的ObjectId字符串,它将被保存为ObjectId而不是字符串。如何解决此问题?

0 个答案:

没有答案