पर विदेशी कुंजी को सहेज नहीं रहा है, मैं एक जेपीए प्रदाता के रूप में स्प्रिंग विद हाइबरनेट का उपयोग कर रहा हूं और फ़ोन नंबर तालिका में विदेशी कुंजी को सहेजने के लिए @OneToMany (कई फोननबर्स वाले संपर्क) प्राप्त करने का प्रयास कर रहा हूं। मेरे फॉर्म से मुझे एक संपर्क ऑब्जेक्ट मिलता है जिसमें इसमें फ़ोन (नंबर) की एक सूची होती है। संपर्क ठीक से जारी रहता है (हाइबरनेट निर्दिष्ट अनुक्रम से पीके प्राप्त करता है)। फोन (संख्याओं) की सूची भी सही पीके के साथ बनी रहती है, लेकिन संपर्क तालिका में कोई एफके नहीं है।जेपीए @OneToMany संबंध
public class Contact implements Serializable {
@OneToMany(mappedBy = "contactId", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
private List<Phone> phoneList;
}
public class Phone implements Serializable {
@JoinColumn(name = "contact_id", referencedColumnName = "contact_id")
@ManyToOne
private Contact contactId;
}
@Repository("contactDao")
@Transactional(readOnly = true)
public class ContactDaoImpl implements ContactDao {
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void save(Contact c) {
em.persist(c);
em.flush();
}
}
@Controller
public class ContactController {
@RequestMapping(value = "/contact/new", method = RequestMethod.POST)
public ModelAndView newContact(Contact c) {
ModelAndView mv = new ModelAndView("contactForm");
contactDao.save(c);
mv.addObject("contact", c);
return mv;
}
}
उम्मीद है कि मुझे उपर्युक्त सभी संबंधित बिट्स मिल गए हैं, अन्यथा कृपया मुझे बताएं।
धन्यवाद इसी प्रकार, जावा संबंधों की स्थापना इसे हल। –
क्या 'ऐडफोन' विधि सही है? ऐसा लगता है कि शून्य की जांच गलत जगह पर है। –
फोन.सेट संपर्क (यह) - यह कॉलम एक स्मृति रिसाव हो? या नहीं? –