मैं जावा ऑब्जेक्ट्स को जेसन प्रतिक्रिया में बदलने के लिए Gson लाइब्रेरी का उपयोग करता हूं ... समस्या यह है कि जेपीए अनुरोध के बाद डीबी से पुनर्प्राप्त ऑब्जेक्ट को अन्य संस्थाओं (see my previous question) के साथ एक पुनरावर्ती संबंध के कारण परिवर्तित नहीं किया जा सकता है:बिडरेक्शनल रिकर्सिव रिश्तों को हटाने का सबसे आसान तरीका?
public class Gps implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "IMEI", nullable = false, length = 20)
private String imei;
//some code here...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "gpsImei", fetch = FetchType.LAZY)
private List<Coordonnees> coordonneesList;
public class Coordonnees implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "IDCOORDONNEES", nullable = false)
private Integer idcoordonnees;
//some code here...
@JoinColumn(name = "GPS_IMEI", referencedColumnName = "IMEI", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Gps gpsImei;
मेरे स्रोत कोड:
EntityManagerFactory emf=Persistence.createEntityManagerFactory("JavaApplication21PU");
GpsJpaController gjc=new GpsJpaController(emf);
Gps gps=gjc.findGps("123456789");
for(int i=0;i<gps.getCoordonneesList().size();i++){
gps.getCoordonneesList().get(i).setGpsImei(null);
}
Gson gson=new Gson();
String json=gson.toJson(gps);//convert to json response
System.out.println(json);
आप यहाँ देख मैं बनाया जा सकता है के रूप में:
for(int i=0;i<gps.getCoordonneesList().size();i++){
gps.getCoordonneesList().get(i).setGpsImei(null);
}
केवल समन्वय सूची में प्रत्येक जीपीएस ऑब्जेक्ट के लिए शून्य सेट करके रिकर्सिव रिलेशनशिप को मारने के लिए ..
आपकी राय में यह एक अच्छा समाधान है या क्या कोई और तरीका अधिक व्यावहारिक है? धन्यवाद
धन्यवाद कायम की है! हाइबरनेट के साथ काम करते समय यह एक lifesaver था। जीएसन का उपयोग करते हुए एक हाइबरनेट इकाई को परिवर्तित करते समय मुझे परेशानी का एक गुच्छा बचाया। – Knubo
एंड्रॉइड पर भी काम करता है। –
कौन सा जार इस "GraphAdapterBuilder" कक्षा है? – pavan