我有一个像这样的主要对象:
public class MainObject{
@Column(unique = false, updatable = true, insertable = true, nullable = true, length = 255, scale = 0, precision = 0)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(unique = true, updatable = true, insertable = true, nullable = true, length = 255, scale = 0, precision = 0)
@Basic
private String name;
@JsonIgnoreProperties({"address" ... } )
@ManyToOne(optional = true, targetEntity = Company.class)
private Child child;
}
我想将这个子对象的一个属性序列化为" basic"类型。正如您所看到的,我最好的解决方案是忽略子对象的所有其他属性。
我的目标是得到这样的东西:
{
"id" = 12,
"name" = "some name",
"company" = 42
}
但是到目前为止我用我最好的解决方案,你可以看到鞋帮我得到以下内容:
{
"id" = 12,
"name" = "some name",
"company" = {
"id" = 42
}
}
我知道我可以在儿童对象中使用注释,但这里是棘手的部分,在我的程序的其他部分我想要正常序列化孩子。
public class Child{
@Column(unique = false, updatable = true, insertable = true, nullable = true, length = 255, scale = 0, precision = 0)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(unique = true, updatable = true, insertable = true, nullable = true, length = 255, scale = 0, precision = 0)
@Basic
private String name;
@Column(unique = true, updatable = true, insertable = true, nullable = true, length = 255, scale = 0, precision = 0)
@Basic
private String address;
...
}
是否有一种简单的注释方式可以获得我想要的东西?
答案 0 :(得分:0)
感谢帮助@gigadot,但我找到了一种更懒惰的方式。
所以我只是忽略了孩子
@JsonIgnore
@ManyToOne(optional = true, targetEntity = Company.class)
private Child child;
然后我用 @JsonProperty创建一个简单的方法(" child")
@JsonProperty("child")
public Long getChildId(){
return this.child.getId();
}