我有一个数据库模型
@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而不是字符串。如何解决此问题?