2017-12-28 42 views
1

어떤 이유로 @JsonIgnore 주석이 내 프로젝트에서 작동하지 않습니다. 다른 호환되지 않는 Jackson 버전 (org.codehaus와 com.fasterxml)을 사용하면이 문제가 발생할 수 있다는 답변을 이미 읽었지만, 하나의 종속성 (afaik)을 통해서만 내 jackson 라이브러리를 얻고 있습니다. 문제.@JsonIgnore가 작동하지 않습니다.

@Entity 
@Table(name = "employee", schema = "klk") 
public class Employee implements Serializable{ 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue 
    @Column(name = "id", unique = true, nullable = false) 
    private Integer id; 
    @Basic 
    @Column(name = "firstName", nullable = false) 
    private String firstName; 
    @Basic 
    @Column(name = "lastName", nullable = false) 
    private String lastName; 
    @Basic 
    @Column(name = "password", nullable = false) 
    @JsonIgnore 
    private String password; 
    @Basic 
    @Column(name = "token", unique = true) 
    @JsonIgnore 
    private String token; 

의 pom.xml :

<dependencies> 
    <!-- https://mvnrepository.com/artifact/com.eclipsesource.jaxrs/jersey-all--> 
    <dependency> 
     <groupId>com.eclipsesource.jaxrs</groupId> 
     <artifactId>jersey-all</artifactId> 
     <version>2.22.2</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-moxy --> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-moxy</artifactId> 
     <version>2.26</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.39</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.eclipse.persistence/eclipselink --> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.6.4</version> 
    </dependency> 

    </dependencies> 

출력 : 누군가가 아이디어가 있습니까

{ 
    "id":1, 
    "firstName": "John", 
    "lastName": "Doe", 
    "password": "password", 
    "token": "token 
} 

는 주석 제의 예에서 작동하지 않는 이유는 무엇입니까?

+0

개인 필드가 아닌 getter에 주석을 추가해야합니다. – shmosel

+0

'@ JsonIgnore' 주석의 패키지는 무엇입니까? – acdcjunior

+0

@shmosel 그건 작동하지 않습니다. – Fynn

답변

1

비록 해결책이 있지만 나중에 참조 할 수 있도록이 답변을 작성합니다.

@ JB Nizet은 자신의 의견에서 지적했듯이, MOXy 대신 Jackson을 사용하지 않았습니다. 그리고,

Jersey Documentation당 모듈은 아래와 같은 뉴저지개별 JSON 프레임 워크를 통합 으로 JSON 표현에 대한 지원을 제공합니다.

  • MOXY

  • JSON 처리 (JSON-P)

  • 잭슨을위한 자바 API

  • 투하 : 현재, 저지 JSON 지원을 제공하기 위해 다음과 같은 모듈과 통합

따라서이 문제를 해결하려면 MOXy 라이브러리를 제거해야합니다.