新手警报!
两天前我刚刚安装了mongodb并在春季开始创建REST api。
所以我有一个集合userinfo,其中的样本文档看起来像
{"_id":"5c62588e5e1fbc37dc9746d3","name":{"first":"rajan","last":"rawat"},"age":32}
我在集合中将字段名称创建为对象类型。
现在在Java中为其创建实体类
@Document(collection = "userinfo")
public class UserInfo {
@Id
private String id;
private Name name;
private int age;
}
类别名称为
public class Name {
private String firstName;
private String lastName;
}
在运行API时,我得到的响应是
{“ id”:“ 5c62588e5e1fbc37dc9746d3”,“名称”:{“名字”:null,“姓氏”:null},“年龄”:32}
如果我将UserInfo类中的类型更改为类似字符串,
@Document(collection = "userinfo")
public class UserInfo {
@Id
private String id;
private String name;
private int age;
}
响应更改为
{“ id”:“ 5c62588e5e1fbc37dc9746d3”,“名称”:“ {\” first \“:\” rajan \“, \“ last \”:\“ rawat \”}“,” age“:32}
基本上是集合中对象的字符串表示形式。
我的问题。
答案 0 :(得分:0)
在文档中,属性名称为“第一个”和“最后一个”,因此在类名称中,您需要使用相同的名称,以便可以通过spring映射对象。
只需尝试:
公共类名称{
private String first;
private String last;
}