想象一下,我从前端获得新实体。它的Java类看起来像:
public class SomeClass {
private Long id;
private String nameOfSomeClass;
@OneToMany(mappedBy = "someClass")
private List<Other> others;
}
并且:
public class Other {
private Long id;
private String otherName;
@ManyToOne
private SomeClass someClass;
}
来自前端的我的POST请求:
{
nameOfSomeClass: "Some name"
others: [{
otherName: "name1"
},
{
otherName: "name2"
}
]
}
我如何坚持这个对象?实际上我没有Other
的ID,其中引用了SomeClass
。 SomeClass
。
我对此的看法:首先,我需要将others
的每个元素保留为id
的空SomeClass
引用。在那之后,我将得到id's
中的每一个others
。然后,我会坚持SomeClass
对象并获得id
并再次坚持others
但id
SomeClass
。{/ p>
我知道这是完全错误的,而且hibernate有一些正确的解决方案。你能帮帮我吗?
答案 0 :(得分:0)
你应该这样做的方式是:
创建SomeClass
的实例,用值填充它,
创建Other
的实例并填充它们并添加结尾&#34;链接&#34;他们在一起:
SomeClass s = new SomeClass();
s.setNameOfSomeClass(nameOfSomeClass);
Other o1 = new Other();
o1.setOtherName(otherName);
o1.setSomeClass(s)
List others = new ArrayList();
others.add(o1);
s.setOthers(others);