2011-07-13 9 views
12

मैं mybatis3 में मैपर को परिभाषित करने के लिए अतिरिक्त xml रखने से बचने की कोशिश कर रहा हूं। एनोटेशन सही में फिट बैठता हैएनोटेशन (SelectProvider का उपयोग कैसे करें) के साथ MyBatis में गतिशील SQL क्वेरी का उपयोग कैसे करें?

मैं @ selectProvider/@ InsertProvider/आदि के उपयोग से थोड़ा उलझन में हूं। ऐसा नहीं लगता कि इस माध्यम से मुझे मार्गदर्शन करने वाले कई संसाधन ऑनलाइन हैं।

असल में, मैं mybatis3 में वैकल्पिक के एनोटेशन संस्करण को ढूंढना चाहता हूं।

उदाहरण के लिए, मैं एक एक्सएमएल नक्शाकार है और मैं यह एनोटेशन उपयोग करने के लिए परिवर्तित करना चाहते हैं

<select ...> 
    <where> 
    <if cause.....> 
    </if> 
    <if cause......> 
    </if> 
    </where> 
</select> 

किसी को भी एक ठोस जवाब/कोड सहित समाधान प्रदान कर सकता है?

अग्रिम धन्यवाद!

@SelectProvider(type=MyClass.class, method="myMethod") 
public Object selectById(int id); 
  • MyClass में:

  • उत्तर

    5
    1. अपने नक्शाकार इंटरफ़ेस में

      public static String myMethod() { 
          return "select * from MyTable where id=#{id}"; 
      } 
      
    15

    आप के लिए एक वैकल्पिक समाधान हो सकता है:

    शुरुआत में <script> जोड़े आपके @annotation

    @Update("<script> 
        update Author 
        <set> 
         <if test="username != null">username=#{username},</if> 
         <if test="password != null">password=#{password},</if> 
         <if test="email != null">email=#{email},</if> 
         <if test="bio != null">bio=#{bio}</if> 
        </set> 
        where id=#{id} 
    </script>") 
    

    अतिरिक्त में, हम .groovy हमारी परियोजनाओं में .class है, इस प्रकार, हम जैसे

    +0

    ऊपर यह वास्तव में अच्छा है @annotation में एसक्यूएल लिख सकते हैं संकलन। हालांकि एक चेतावनी: '