SQL Map XML dosyalarının bir kısmı tarafından kullanılan sql fragmanlarını ayrı bir dosyaya koymak istiyorum. Şu anda, bu parçalara sahip <sql>
öğeleri, eşleştiricilerden birinde, onları bulmak zor hale getiren <select>
gibi diğer öğelerle birlikte.
Sadece birkaç <sql>
öğelerini tanımlayan ve bir arabirime uygulama oluşturmak için kullanılmayan bir eşleştiricim olabilir mi? Bu eşleştiricinin doğru ad alanı ne olurdu?
İlk Sql Harita dosyası::MyBatis/iBatis - ayrı bir SQL Map dosyasında yeniden kullanılabilir sql parçaları?
<mapper namespace="com.company.project.dao.???">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
</mapper>
İkinci Sql Harita dosyası
<mapper namespace="com.company.project.dao.someDao">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
<select id="getSomeData"
resultType="SomeClass"
parameterType="DateParam" >
SELECT some_column, another_column
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
böyle unsurları ayırmak istiyorum:
Bu
framents ile SQL Harita dosyasıdır :<mapper namespace="com.company.project.dao.someDao">
<select id="getSomeData"
resultType="SomeClass"
parameterType="DateParam" >
SELECT some_column, another_column
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
Teşekkür olabilir! Ayrıca, diğer SQL Map dosyalarını "yüklemek" için MapbatFactoryBean sınıfını mybatis-spring'ten kullandığımı da fark ettim. Ortak parçaları olan dosya herhangi bir yere "yüklenmedi", bu yüzden el ile mybatis yapılandırma dosyasına eklemem gerekiyordu. – prasopes
Çekirdek eşleyici dosyası, mybatis yapılandırma dosyanızdaki tek şey ise, ortak eşleştirici dosyasını yüklemek için SqlSessionFactoryBean'daki 'mapperLocations' özelliğini kullanmak daha mantıklı olabilir. – AngerClown
MyBatis kullanıyorsanız, "mapl" ile "sqlMap" değiştirin. http://code.google.com/p/mybatis/wiki/DocUpgrade3 adresine bakın. Yukarıdaki çözümü açık bir şekilde takip ettim ve diğer konulara girdim. Sonra, MyBatis kullanıyorum ve sqlMap yerine mapper kullanmam gerektiğini anladım. – Srikanth