0

Spring Data RESTで私のプロジェクトに質問があります。SpringデータREST convert/show ManyIdOneを含むEmbeddedId

私のモデルには、EmbeddedIdsを含む2つのテーブルが含まれています。 最初のテーブル(name = B)は2つの整数で構成されています。 2番目のテーブル(name = A)は、単純なFKとBのモデル(EmbeddedIdを含む)で構成されています。

ここで、テーブルBをリクエストすると、2つのIDが取得されます。 しかし、テーブルAをリクエストすると、IDは取得されません。

したがって、少なくともURI-linkのIDを返すように、私のEmbeddedIdクラスのtoString 。

私はBackendIdConverterまたはSpring core.converterについて読んで、IDを正しく変換しようとしましたが、私の目標(エラーがあります)に到達できませんでした。今、あなたの助けが必要です!ジャクソンJSONシリアライザは、デフォルトではまた、任意のパブリック取得...()メソッドをシリアル化します

@Embeddable 
public class IDsFromA implements Serializable { 

    @ManyToOne 
    @JoinColumn(name="cID") 
    private C c; 

    @ManyToOne 
    @JoinColumns({ 
     @JoinColumn(name="b_1", referencedColumnName="b_1"), 
     @JoinColumn(name="b_2", referencedColumnName="b_2") 
    }) 
    private B b; 
} 

@Embeddable 
public class IDsFromB implements Serializable { 

    private int b_1; 
    private int b_2; 
} 

@Entity 
public class A { 

    @EmbeddedId 
    private IDsFromA idsFromA; 

    // ... 
} 

@Entity 
public class B { 

    @EmbeddedId 
    private IDsFromA idsFromA; 

    // ... 
} 

@Entity 
public class c { 

    @Id 
    private int cID; 

    // ... 
} 

答えて

0

:(デモのように)完全に私の問題を理解することが

は、ここに私の構造です。したがって、関連するデータを返すための2つのメソッドを追加するだけで、値はレスポンスに含める必要があります。

@Entity 
public class A { 

    @EmbeddedId 
    private IDsFromA idsFromA; 

    public int getValueOne(){ 
     return idsFromA.getB().getIdsFromB().getB_1(); 
    } 

    public int getValueTwo(){ 
     return idsFromA.getB().getIdsFromB().getB_2(); 
    } 
} 
+1

私は数時間前にBackendIdConverter権限を設定して問題を解決しました。しかし、コンバーターを隠してオプションを試してみたら、IDがすでに表示されているので、今すぐあなたの答えをテストすることはできませんが、別のプロジェクトでこれを実行することに気付きました。しかし、あなたの答えをありがとう! – Phil

+0

@ Phil、あなたの答えを追加できますか? –

+0

私はそれを約githubプロジェクトにプッシュします。 5-6時間。それで大丈夫です? – Phil

関連する問題