2017-05-09 9 views
0

私はSpring Data examplesで遊んでいます。私は子エンティティのセットが関連付けられているエンティティParentを定義しました。Springデータを使用して1回のリクエストで子エンティティを送信する

@Entity 
@Table 
@Data 
public class Parent { 

    @Id 
    @GeneratedValue 
    private Integer id; 

    @NotNull 
    private String name; 

    @Fetch(FetchMode.SUBSELECT) 
    @OneToMany(fetch = EAGER, cascade = {ALL}, orphanRemoval = true) 
    private Set<Child> childs; 

} 

@Entity 
@Table 
@Data 
public class Item { 

    @Id 
    @GeneratedValue 
    private Integer id; 

    @NotNull 
    private String name; 

} 

そして対応するリポジトリ。私の問題は、新しいParentChildのカールで転記するときに、Could not read JSON document: Failed to convert from type [java.net.URI] to typeと記載されているhereのエラーにぶつかります。この質問に対する答えは、子エンティティを前に投稿してから、返されたURLを使用する必要があることを示しています。 Oliver Gierkeのthis answerに記載されているのと同じプロセスです。

完全な子エンティティをデシリアライズするようにSpringデータを設定する方法はありますか?

答えて

1

Itemのリポジトリをエクスポートしない場合(リポジトリに@RepositoryRestResource(exported = false)と注釈を付けることによって)、常にその子をシリアル化し、親にPOSTを付けることもできます。

さらに、Itemの最上位レベルのREST APIエンドポイントもなく、親に関連リソースもありません。

あなたはすでに関係にcascade=ALLを持っています - このアプローチはうまくいくはずです。

関連する問題