मैं जेपीए (एक्लिप्ससेंक) और स्प्रिंग का उपयोग कर रहा हूं। मैं एक स्वत: जनरेट आईडी के साथ एक सरल इकाई है कहते हैं:जेपीए - जारी रखने के बाद एक ऑटो जनरेटेड आईडी लौट रहा है()
@Entity
public class ABC implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
// ...
}
मेरी डीएओ कक्षा में, मैं एक डालने विधि है कि इस इकाई पर persist()
कॉल की है। मैं नई इकाई के लिए जेनरेट आईडी को वापस करने की विधि चाहता हूं, लेकिन जब मैं इसका परीक्षण करता हूं, तो यह इसके बजाय 0
देता है।
public class ABCService {
@Resource(name="ABCDao")
ABCDao abcDao;
public int addNewABC(ABC abc) {
return abcDao.insertABC(abc);
}
}
इसी प्रकार एक के बारे में बताता है जेपीए में नहीं है, http://stackoverflow.com/q/3328813/366964 –
उत्तर के लिए धन्यवाद देख सकते हैं। और एक मुश्किल समाधान (एक जेपीए नहीं) के रूप में हम यूनिक्स टाइमस्टैम्प जैसी एक और अद्वितीय आईडी का उपयोग कर सकते हैं। – sura2k
संभावित डुप्लिकेट [जेपीए ने @GeneratedValue @Id] कब सेट किया है (http://stackoverflow.com/questions/9087848/when-does-the-jpa-set-a-generatedvalue-id) – Raedwald