Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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 Jersey Jackson JSON和Eclipselink JPA-如何在没有@JsonIgnore的情况下动态忽略所拥有实体的JSON属性?_Java_Json_Jpa_Jackson_Eclipselink - Fatal编程技术网

Java Jersey Jackson JSON和Eclipselink JPA-如何在没有@JsonIgnore的情况下动态忽略所拥有实体的JSON属性?

Java Jersey Jackson JSON和Eclipselink JPA-如何在没有@JsonIgnore的情况下动态忽略所拥有实体的JSON属性?,java,json,jpa,jackson,eclipselink,Java,Json,Jpa,Jackson,Eclipselink,所以我有一个数据库和一个充满JPA实体的库,我通常在Jersey Rest服务上阅读它们。当我尝试读取一个实体时,它递归地读取双向关系。我知道@JsonIgnore解决了这个问题,但数据库太大,无法手动遍历每个实体并将@JsonIgnore添加到所有者实体的每个字段中 客户: @Entity public class Customer implements DomainObject{ private static final long serialVersionUID = 254338

所以我有一个数据库和一个充满JPA实体的库,我通常在Jersey Rest服务上阅读它们。当我尝试读取一个实体时,它递归地读取双向关系。我知道@JsonIgnore解决了这个问题,但数据库太大,无法手动遍历每个实体并将@JsonIgnore添加到所有者实体的每个字段中

客户:

@Entity
public class Customer implements DomainObject{

    private static final long serialVersionUID = 2543387766776209353L;

    @Id
    private long id;
    private String firstName;
    private String lastName;

    @OneToOne(fetch = FetchType.LAZY, mappedBy="customer",cascade={CascadeType.ALL})
    private Address address;

    ...Getters and Setters...

}
地址:

@Entity
public class Address implements DomainObject {

    private static final long serialVersionUID = 2543387766776209353L;

    @Id
    private long id;
    private String city;
    private String street;

    @PrimaryKeyJoinColumn
    @OneToOne(fetch = FetchType.LAZY)
    private Customer customer;

    ...Getters and Setters...
}

基本上,如果可能的话,我想忽略在地址的Json中发送客户而不使用@JsonIgnore。如果不是,还有另一种JSON构建技术可以用来生成JSONs,它遵循所有者和MaPdBube字段的JPA标记吗?

< P>也许您可以考虑为REST服务响应创建不同的对象,如模式中所描述的。 这将需要您编写更多的代码,但会让您对服务的响应有更多的控制,甚至允许您在需要时添加聚合,以避免不必要的从客户端到toy服务的往返,如Wikipedia文章中所述

详细介绍DTO