java - 如何防止 Spring Data MongoDB 将 id 字段映射为对象 id?

标签 java spring spring-boot spring-data-mongodb

我已经建立了自己的机制来为我的域对象分配身份,因此在持久化它们时,跟踪 MongoDB 分配给它们的内容对我来说真的没有太大值(value)。但是,我将域类的标识字段命名为 id,因为它简洁易懂。问题是,according to the documentation , Spring 会自动将这个字段映射到 MongoDB 分配的 ObjectID。如何防止这种情况发生而不必重命名我的 id 字段,或者为了解决这个问题而定义一个用 @Id 注释的自定义身份字段?

最佳答案

使用@MongoId 而不是@Id

@MongoId(targetType = FieldType.STRING)
protected String id;

即使“形状”是一个 ObjectId,它也会存储字符串

关于java - 如何防止 Spring Data MongoDB 将 id 字段映射为对象 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704977/

相关文章:

java - 将 "<"或 ">"作为参数传递给比较器

java - Eclipse 将包组织到文件夹层次结构中

java - OnClick 方法未被调用

java - 解析 csv 文件时,字段中的换行符被视为行尾

mysql - 无法从 Spring Boot 应用程序在 MySQL8 中创建具有关系的表

java - 如何使用 @ControllerAdvise(和 @RestControllerAdvise)类保留 Spring 的内置 REST 响应 JSON 主体?

java - BufferedReader:将多行读入单个字符串

java - 状态 404 - MockMvc 授权 - Spring boot REST 文档

java - Spring Boot 在 WebSocket 上使用 Stomp : Handshake failed due to invalid Upgrade header: null

java - 无法向springboot发送http post请求