का उपयोग कर जेएक्स-आरएस के लिए हाइबरनेट संसाधन कक्षाओं में तालिका में शामिल होने के साथ कई-टू-वन मैं जर्सी का उपयोग कर एक विश्वसनीय वेब सेवा लागू कर रहा हूं। मैं डेटाबेस (mySQL) के साथ संवाद करने के लिए हाइबरनेट का उपयोग करता हूं। मेरे हाइबरनेट संसाधन वर्गों में शामिल हैं:जर्सी
@Entity
public class Activity {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinTable(name="category_activity",
joinColumns={@JoinColumn(name="activities_id")},
inverseJoinColumns={@JoinColumn(name="Category_id")})
private Category category;
}
और श्रेणी वर्ग:
@Entity
public class Category {
@Id
@GeneratedValue
private long id;
@OneToMany
@Fetch(FetchMode.JOIN)
@JoinTable(name = "category_activity",
joinColumns = { @JoinColumn(name = "Category_id") },
inverseJoinColumns = { @JoinColumn(name = "activities_id") })
@JsonIgnore
private Collection<Activity> activities;
}
मैं इस प्रश्न के लिए प्रयोग किया जाता ativities लाने के लिए:
session.createQuery("from Activity a join a.category cs where cs.id= :categoryId order by a.key").setLong("categoryId", categoryId).list();
JSON प्रारूप में परिणाम सही तरह नहीं है :
[[{"id":26,"key":"other","name":"Other","cost":100.0,"category":{"id":10,"name":"General","description":""}},{"id":10,"name":"General","description":""}]]
जैसा कि आप देखते हैं कि श्रेणी 2 बार मुद्रित होती है और हमारे पास एक अतिरिक्त [] है। जब मैं की तरह श्रेणी वर्ग में एक-से-अनेक संबंध का एक और तंत्र का उपयोग करें:
@OneToMany(targetEntity = Activity.class, mappedBy = "category", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnore
private Collection<Project> activities;
और गतिविधि कक्षा में:
@ManyToOne(optional = false)
private Category category;
और इस क्वेरी:
session.createQuery("from Activity as a where a.category.id= :categoryId order by a.key").setLong("categoryId", categoryId).list();
सब कुछ काम करता है ठीक। लेकिन मुझे जॉइन टेबल का उपयोग करना है क्योंकि मुझे लगता है कि डेटाबेस को बदलना नहीं है।
उचित परिणाम देखने के लिए की तरह करना चाहिए:
[{"id":26,"key":"other","name":"Other","cost":100.0,"category":{"id":10,"name":"General","description":""}}]
मैं किसी भी मदद के लिए सराहना करते हैं।
मैं apprec प्रतिक्रिया के लिए iate। आपके द्वारा उल्लिखित समाधान में एक ही समस्या थी। – Ali
मेरा संपादित उत्तर –
देखें अब यह पूरी तरह से काम कर रहा है। – Ali