7

興味深い問題があります。ManyToOne参照で埋め込み可能なSpringデータのシリアル化

タイプA:

@Entity 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class A { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 
} 

タイプB:

@Entity 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class B { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 
} 

埋め込みC:

@Embeddable 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class C { 
    @ManyToOne 
    private A a; 
    @ManyToOne 
    private B b; 
} 

およびタイプD:

@Entity 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class D { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @ElementCollection 
    @OrderColumn(name = "ORDER_INDEX") 
    @CollectionTable(
    name = "d_c_join", 
    joinColumns = @JoinColumn(name = "d_id") 
) 
    private List<C> listOfC; 
} 
私のデータモデルは、以下であります

エンティティの逆シリアル化(および格納)は正常に機能します。クラスDのオブジェクトがシリアライズされると、以下のは結果である:

{ 
    "_embedded" : { 
    "ds" : [ { 
     "id" : 1, 
     "listOfC" : [ { }, { } ], 
     "_links" : { 
     "self" : { 
      "href" : "http://localhost:8000/ds/1" 
     } 
     } 
    } ] 
    } 
} 

は、どのように私はCでAとB(最高は、そのURIすることによる)をシリアル化するために春データを設定することができます。

+0

を私は右、あなただけeagerloadとしてCのフィールドをマークだと思いますか? –

+0

フィールドにspring-dataが表示されず、それに依存しないエンティティの参照が熱心に実行されているか、遅延読み込み中です – Benny

+0

私は同様の問題を抱えています。 @Embeddableオブジェクトの関係がシリアル化されていません。あなたはこの問題を解決することができましたか? –

答えて

3

私はかなりあなたが探しているものは肯定的ですProjectionsです。私はSpringがそれなしで参照されたコレクションを直列化するとは思わない。

詳細はこちら私の答えを参照してください:Spring Data-Rest POST to sub-resource

関連する問題