Spring 引导,MongoDB:嵌入式文档中的字段正在重命名
Spring Boot, MongoDB: Fields in Embedded Documents getting Renamed
我有一份主要文件:
@Document
public class MainDocument {
private String name;
private String desc;
private List<Nested> nestedList;
-- More fields/methods --
}
和嵌入的文档:
@Document
public class Nested {
private String nestedUser;
private String nestedTitle;
-- More fields/methods --
}
尝试在 List<Nested>
中存储嵌套 class 的新实例时,嵌套 class 的字段正在重命名。例如,nestedTitle
变为 title
。这没什么大不了的,除了它不允许我设置一些重命名字段的值。
我已尝试使用 @Field("field_name")
注释,但字段仍会重命名并忽略设置它们的值的尝试。
什么会导致某些字段被重命名?我错过了什么吗?大约一半的字段被重命名,其余的保持正确的名称...
我正在测试使用 POSTMAN 向主文档的控制器发送 JSON 请求。即使我在 JSON 请求中使用新的字段名称,该值仍然不会被设置。
想通了...
Getter nestedTitle
的方法被命名为 getTitle()
因此它根据 getter 方法名称重命名。更改为 getNestedTitle()
并且不再重命名。更改了相关字段的其他 getter 方法,现在一切正常。
不确定为什么它会根据方法名称重命名字段,但我该判断谁Spring...发布此答案可以节省其他人几个小时的时间。
我有一份主要文件:
@Document
public class MainDocument {
private String name;
private String desc;
private List<Nested> nestedList;
-- More fields/methods --
}
和嵌入的文档:
@Document
public class Nested {
private String nestedUser;
private String nestedTitle;
-- More fields/methods --
}
尝试在 List<Nested>
中存储嵌套 class 的新实例时,嵌套 class 的字段正在重命名。例如,nestedTitle
变为 title
。这没什么大不了的,除了它不允许我设置一些重命名字段的值。
我已尝试使用 @Field("field_name")
注释,但字段仍会重命名并忽略设置它们的值的尝试。
什么会导致某些字段被重命名?我错过了什么吗?大约一半的字段被重命名,其余的保持正确的名称...
我正在测试使用 POSTMAN 向主文档的控制器发送 JSON 请求。即使我在 JSON 请求中使用新的字段名称,该值仍然不会被设置。
想通了...
Getter nestedTitle
的方法被命名为 getTitle()
因此它根据 getter 方法名称重命名。更改为 getNestedTitle()
并且不再重命名。更改了相关字段的其他 getter 方法,现在一切正常。
不确定为什么它会根据方法名称重命名字段,但我该判断谁Spring...发布此答案可以节省其他人几个小时的时间。