ich einige JPA Modelle haben: "Kategorie" und "Artikel":Frühling und Jackson: set json ignorieren dynamisch
@Entity
@Table(name = "categories")
public class Category {
private int id;
private String caption;
private Category parent;
private List<Category> childrenList;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
@ManyToOne
@JoinColumn(name = "parent_id")
public Category getParent() {
return parent;
}
public void setParent(Category parent) {
this.parent = parent;
}
@OneToMany
@JoinColumn(name = "parent_id")
public List<Category> getChildrenList() {
return childrenList;
}
public void setChildrenList(List<Category> childrenList) {
this.childrenList = childrenList;
}
}
@Entity
@Table(name = "articles")
public class Article {
private int id;
private String caption;
private boolean isAvailable;
private String description;
private int price;
private Category category;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
@Column(name = "is_available")
@Type(type = "org.hibernate.type.NumericBooleanType")
public boolean getIsAvailable() {
return isAvailable;
}
public void setIsAvailable(boolean available) {
isAvailable = available;
}
@Column
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Column
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@ManyToOne
@JoinColumn(name = "category_id")
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
}
Auch ich habe einige REST-Controller mit zwei Methoden: 1) Bei der ersten Methode i müssen die letzten 10 Artikel erhalten und serialisieren, aber ich brauche nicht "childrenList" und "Eltern" Feld in Categegory. 2) Bei der zweiten Methode muss ich das selbe, aber "Eltern" Feld serialisieren.
Wie kann ich das lösen? Wenn ich @ JsonIgnore Annotation zu diesen Feldern verwenden werde, werden sie nie serialisiert. Oder sollte ich DTO-Klassen verwenden?
Wie kann ich Feld zum Ignorieren dynamisch festlegen?
Willkommen bei Stack Overflow! Ich könnte mir vorstellen, dass 95% dieses Codes für Ihre Frage nicht relevant ist. Bitte erstellen Sie ein [** minimales **, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve), das Ihr Problem veranschaulicht. –