Witam mam pytanie. Pobieram dane z encji która zawiera referencje do innej encji (ManyToOne). Pobieram dane metodą GET i wszystko jest ok (aby GET działał musiałem wykorzystać adnotacje @JsonManagedReference i @JsonBackReference). Ale gdy przesyłam dokładnie te same dane do serwera za pomocą metody POST dostaję błąd. Czy powyższe adnotacje umożliwiają pracę tylko w jedną strone??
0
0
JAKI BŁĄD??????????????????????????????
0
Błąd został usunięty:) Ale mam problem z zależnością cykliczną. Gdy korzystam z powyższych adnotacji wykonuje poprawnie POSTA ale przy GET nie zwraca mi danych pobranych z referencji (dostaję dane z klasy Workers ale nie widze Address). Poniżej zamieszczam encje.
public class Workers implements java.io.Serializable {
private static final long serialVersionUID = -7360856636008311332L;
private Integer idWorkers;
private Address address;
private String name;
private String surname;
private String email;
private Integer phone;
private String position;
private String employmentType;
private Integer pesel;
private String desc;
/*...*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idAddress", nullable = false)
@JsonBackReference
public Address getAddress() {
return this.address;
}
public class Address implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = -306359772250664694L;
private Integer idAddress;
private String homeNo;
private String flatNo;
private String street;
private String city;
private String postcode;
private Set<Workers> workerses = new HashSet<Workers>(0);
/*...*/
@OneToMany(fetch = FetchType.EAGER, mappedBy = "address")
@JsonManagedReference
public Set<Workers> getWorkerses() {
return this.workerses;
}
}
Znalazłem info na temat adnotacji @JsonIdentityInfo i umieściłem ją nad definicją obu klas:
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class Workers implements java.io.Serializable{}
Ale nie pomogło tylko dostaję powielone dane. Czy macie jakiś pomysł? Z góry dzięki.
0
Jeżeli przesyłanie do GUI encji w niektórych przypadkach sprawia Ci problem użyj DTO "szytego na miarę"
0
I właśnie tego chciałem uniknąć. Bo można ładować dane prosto do encji tylko mi nie wychodzi;)