在Java Spring和MongoDB下,我正在创建类的以下字段(id):
@Id
public String _id;
为了创建名称为_id的标识符字段,但我得到一个带有编译警告的标识符ID:WARN 11916 --- [ main] o.s.d.m.c.m.BasicMongoPersistentProperty : Customizing field name for id property not allowed! Custom name will not be considered!
我的问题是如何在java spring中更改id字段的名称(如果可能的话)
编辑:我尝试使用@Field(“ _ id”),但无法正常工作。
谢谢
答案 0 :(得分:1)
TL; DR
警告来自MongoDB,该域对@Id字段具有除基于root cause的spring数据支持的属性名称以外的属性名称感到不满
根据存储在集合SUPPORTED_ID_PROPERTY_NAMES
中的受支持的ID字段名称,包括{“ id”,“ _id}。
话虽这么说,您应该接受id字段的命名,但显然不可以。它可能来自另一个文档。您应该检查一下@Document的数量。
通常,Spring中的基本mongoDB文档包括两个主要信息:
这里有个例子:
@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项目以及此sample project,以查看创建此类项目时的“最佳实践开始”