2017-06-30 5 views
0

私は、双方向の別のエンティティとの関係@OneToManyで構成されているエンティティを持っています。ここでは、それがどのように見えるかです:ManyToOne関係でJSONをPOJOに変換するにはどうすればよいですか?

@Entity 
@Table 
public class Foo { 
    @Id 
    @GeneratedValue 
    Integer foo_id; 

    @OneToMany 
    @JoinColumn(name = "FOO_ID") 
    Set<Bar> bars; 
} 

@Entity 
@Table 
public class Bar { 
    @Id 
    @GeneratedValue 
    Integer bar_id; 

    @ManyToOne 
    @JoinColumn(name = "FOO_ID") 
    Foo foo; 
} 

私はCrudRepositoryを使用してbarsセットでFooオブジェクトを保存するにはどうすればよいですか?ですから、例えば、私はFooオブジェクトにこのJSONをデシリアライズ:

{ 
    "foo_id": 1, 
    "bars": [{"bar_id": 1}, 
      {"bar_id": 2}] 
} 

私は何とかFoo変数を設定する必要がありますか?

save()の関数呼び出しをそれぞれBarに呼び出す必要がある場合は、これらの挿入操作がすべてアトミックになるようにトランザクションを開始する方法がありますか?

答えて

0

まず第一に、あなたはこのような関係をマッピングする必要があります。

@OneToMany(mappedBy="foo", cascade=CascadeType.PERSIST) 
Set<Bar> bars; 

カスケード型は、あなたのニーズに依存します。カスケードタイプの詳細については、articleをお読みください。

Foo foo = new Foo(); 
Set<Bar> bars = new HashSet<>(); 
Bar bar = new Bar(); 
bar.setFoo(foo); 
bars.add(bar); 
foo.setBars(bars); 
fooRepositoy.save(foo); 

その後、あなたはこのようなフー・エンティティを保存することができます

関連する問題