दरअसल, @Options
. के साथ ऐसा करना संभव है एनोटेशन (बशर्ते आप auto_increment या अपने डेटाबेस में कुछ इसी तरह का उपयोग कर रहे हों):
@Insert("insert into table3 (id, name) values(null, #{name})")
@Options(useGeneratedKeys=true, keyProperty="idName")
int insertTable3(SomeBean myBean);
ध्यान दें कि keyProperty="idName"
यदि कुछ बीन में मुख्य संपत्ति को "आईडी" नाम दिया गया है, तो भाग आवश्यक नहीं है। एक keyColumn
भी है विशेषता उपलब्ध है, दुर्लभ मामलों के लिए जब MyBatis स्वयं प्राथमिक कुंजी कॉलम नहीं ढूंढ पाता है। कृपया यह भी ध्यान दें कि @Options
. का उपयोग करके , आप अपनी विधि को कुछ डिफ़ॉल्ट पैरामीटर पर सबमिट कर रहे हैं; डॉक्टर से परामर्श करना महत्वपूर्ण है (नीचे लिंक - वर्तमान संस्करण में पृष्ठ 60) !
(पुराना उत्तर) (काफी हाल का) @SelectKey
एनोटेशन का उपयोग अधिक जटिल कुंजी पुनर्प्राप्ति (अनुक्रम, पहचान () फ़ंक्शन ...) के लिए किया जा सकता है। यहाँ क्या है MyBatis 3 उपयोगकर्ता मार्गदर्शिका
(पीडीएफ) उदाहरण के रूप में प्रस्तुत करता है:
@Insert("insert into table3 (id, name) values(#{nameId}, #{name})")
@SelectKey(statement="call next value for TestSequence", keyProperty="nameId", before=true, resultType=int.class)
int insertTable3(Name name);
@Insert("insert into table2 (name) values(#{name})")
@SelectKey(statement="call identity()", keyProperty="nameId", before=false, resultType=int.class)
int insertTable2(Name name);