2017-06-02 5 views
0

私はフロントエンドから新しいエンティティを取得するとします。Hibernate entities persistance

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" 
     } 

    ] 
} 

は、どのように私は、このオブジェクトを永続化することができますか?それはのように見えるためのJavaクラス実際には私はの参照を持っているOtherのIDがありません。 SomeClassの場合も同じです。

私のビジョンでは、まず、についてはidの参照が空白のothersの各要素を保持する必要があります。その後、othersのそれぞれid'sを取得します。それから私はSomeClassオブジェクトを残してidを得て、idSomeClassで再びothersを残します。

私はそれが完全に間違っていることを知っています、そして、休止状態にはそれに対して正しい解決策があります。あなたはそれで私を助けてくれますか?

+0

'name'が一意の場合は、IDとして使用します。 –

+0

@KrzysztofCichockiデータベースでPKとして' id'を使用します。名前は一意ではありません – Nox

答えて

0

あなたがこれをhadleべき方法は次のとおりです。

値でそれを埋めるSomeClassのインスタンスを作成し、 はOtherのinstacesを作成し、それらを記入し、末尾を追加し、「リンク」、それらを一緒:

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);