0

我对 Spring Data REST 中的项目有疑问。

我的模型包括两个带有 EmbeddedIds 的表。第一个表 (name=B) 由两个整数组成。第二个表(名称=A)由一个简单的 FK 和 B 的模型(包括 EmbeddedId)组成。

现在,如果我请求表 B,我将获得这两个 ID。但是,如果我向表 A 发出请求,我将不会获得 ID。

所以我重写了我的 EmbeddedId 类中的 toString() 方法,以至少在 URI 链接中返回 ID。

我阅读了有关 BackendIdConverter 或 Spring core.converter 并尝试正确转换 ID,但我无法达到我的目标(出现错误)。所以现在,我需要你的帮助!

为了完全理解我的问题,这是我的结构(作为演示):

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

    // ...
}
4

1 回答 1

0

默认情况下,Jackson JSON 序列化程序还将序列化任何公共 get..() 方法。因此,您可以简单地添加几个方法来返回相关数据,并且值应该在响应中:

例如

@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();
    }
}
于 2016-12-19T19:58:56.753 回答