Hibernate实体持久化

时间:2017-06-02 10:55:00

标签: java hibernate jpa orm

想象一下,我从前端获得新实体。它的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,其中引用了SomeClassSomeClass

的情况相同

我对此的看法:首先,我需要将others的每个元素保留为id的空SomeClass引用。在那之后,我将得到id's中的每一个others。然后,我会坚持SomeClass对象并获得id并再次坚持othersid SomeClass。{/ p>

我知道这是完全错误的,而且hibernate有一些正确的解决方案。你能帮帮我吗?

1 个答案:

答案 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);
相关问题