Java 更改id字段的名称

Java 更改id字段的名称,java,spring,spring-boot,Java,Spring,Spring Boot,在java Spring和MongoDB中,我创建了一个类的以下字段(id): @Id public String _id; 为了创建名为_id的标识符字段,但我得到了一个带有编译警告的标识符id:WARN 11916---[main]o.s.d.m.c.m.basicMongOperateResistentProperty:不允许为id属性自定义字段名!自定义名称将不被考虑 我的问题是如何在JavaSpring中更改id字段的名称(如果可能的话) 编辑:我试过使用@Fiel

在java Spring和MongoDB中,我创建了一个类的以下字段(id):

    @Id 
    public String _id;
为了创建名为_id的标识符字段,但我得到了一个带有编译警告的标识符id:
WARN 11916---[main]o.s.d.m.c.m.basicMongOperateResistentProperty:不允许为id属性自定义字段名!自定义名称将不被考虑

我的问题是如何在JavaSpring中更改id字段的名称(如果可能的话)

编辑:我试过使用@Field(“\u id”),但它不起作用

谢谢你,TL;DR

该警告来自MongoDB,它不满意@Id字段的属性名不是基于

根据受支持的Id字段,存储在集合
受支持的\u Id\u属性中的名称包括{“Id”,“\u Id}

也就是说,您的id字段的命名应该被接受,这显然不是。它可能来自另一个文档。您应该检查您有多少@document

通常,Spring中的基本mongoDB文档包括两个主要信息:

  • 模型对象中的@Document注释(例如用户)
  • 模型类中Id属性的@Id注释
  • 这里有一个例子:

    @Document
    public class User {
         
         @Id
         private BigInteger id;
    
         // other fields
         /**
          * Returns the identifier of the document.
          * 
          * @return the id
         */
        public BigInteger getId() {
             return id;
        }
    
        // getters & setters for other fields (id have only a getter /!\)
    }
    
    您在问题描述中描述的内容对于基于JPA的SQL数据库实体更为方便,而不适用于MongoDB文档


    此外,我鼓励您检查Spring Data MongoDB项目,并在创建此类项目时查看“最佳实践开始”

    在实体或MongoDB中更改它?在我通过Java(控制器)获取对象时更改它因此答案是在my entity中您不能更改mongodb中的字段名称,您可以根据需要命名id映射到的属性。也许您应该详细说明如何使用实体(代码!)@详细说明什么?一切都很清楚!请把这个问题留给其他人回答。你在这里没有帮助。谢谢!这绝对不是对我问题的回答实际上这是对你问题的可能解释的一个有帮助的回答。@lopmkimp我会让你找人回答你的问题。事实上两位乐于助人的成员试图提供建议,但不清楚如何支持你实现你想要的目标,应该给你一些思考的东西。幸运的是,完全不必要的评论也应该被降级(如果有什么仍然不清楚,你应该在礼貌的评论中陈述,而不是像你那样)检查我的编辑它包含更多信息,以便更好地理解警告以及如何处理。