Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSON中映射JoinColum值而不是关联_Java_Json_Hibernate_Jackson - Fatal编程技术网

Java 在JSON中映射JoinColum值而不是关联

Java 在JSON中映射JoinColum值而不是关联,java,json,hibernate,jackson,Java,Json,Hibernate,Jackson,对于具有@ManyToOne关系的给定@Entity,我希望抑制关联类型的映射。JSON表示应该包含forein键(@JoinColumn) @Entity public class OrderPosition implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @ManyToOne @JoinColumn(na

对于具有
@ManyToOne
关系的给定
@Entity
,我希望抑制关联类型的映射。JSON表示应该包含forein键(
@JoinColumn

@Entity
public class OrderPosition implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @ManyToOne
    @JoinColumn(name = "order_id", referencedColumnName = "id")
    //@Json???
    private Order order;

    //  ...
}

orderPosition = new OrderPosition()
// ...
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(orderPosition);
assertThat(json).contains("\"order_id\":");

我如何归档它呢?

也许你可以在
订单
字段中添加一个
@JsonIgnore
,在
订单ID
字段中添加另一个字段。也许你可以在
订单
字段中添加一个
@JsonIgnore
,在
订单ID

字段中添加另一个字段。你可以使用以下方法解决方案:

@JsonProperty("order")
public Integer getOrderId() {
    return this.order.getId();
}

JsonProperty注释导致使用此getter序列化“order”属性。因此,您只能返回用例的id。我建议使用一个好名字getter(而不是getOrder()…)。

您可以使用以下解决方案:

@JsonProperty("order")
public Integer getOrderId() {
    return this.order.getId();
}
JsonProperty注释导致使用此getter序列化“order”属性。因此,您只能返回用例的id。我建议使用一个好名字getter(而不是getOrder()…)