2017-04-11 4 views
0

J'ai hibernate classe pojo qui a une relation ManytoOne avec une autre classe.Marshall un hibernate pojo classe avec OnetoMany relation

class Employee {   
    @OneToMany 
     private String id; 
    } 

class ITEmployee { 
private Employee employee; 

@ManyToOne 
@JoinColumn(name="EMPLOYEE_ID) 
    public Emplyee getEmployee() { 
    return employee; 
    } 

} 

Maintenant, lorsque je récupère une rangée et à un marshall JSON/XML réponse REST, je reçois objet imbriqué de la classe et la classe des employés ITEmployee au sein de chaque objet.

Comme par exemple,

{ "ITEmployee": [{ "id": 1234, "employé": [{ "id": 222, "ITEmployee": { "id": 1234, "employé" : [{"id": 222, "Employé": [{"id": 222, "ITEmployee":. ...

et ainsi de suite. Comment puis-je ignorer la relation ManytoOne pendant le marshalling? Je ne veux pas créer une autre classe et les mapper séparément.

J'ai essayé d'utiliser @JsonIgnore et @Transient mais cela n'a pas fonctionné.

API REST: JAX-RS Bravo !!

Répondre

1

Vous pouvez dire à Jackson de ne pas déplacer certains champs. Vous avez plusieurs choix. Le plus simple est d'utiliser l'annotation @JsonIgnore sur votre champ Employé.

Si vous souhaitez plus de fonctionnalités avancées, vous pouvez rechercher @JsonView.

EDIT: Je vois que vous avez déjà essayé d'utiliser @JsonIgnore. Pouvez-vous coller votre code? En principe, cela doit fonctionner.

+0

Utilisé import org.codehaus.jackson.annotate.JsonIgnore; au lieu d'importer org.fasterxml.jackson.annotate.JsonIgnore; et ça marche maintenant. –