2016-08-10 31 views
0

MyBatisの継承にアノテーションを使用しました。子は@Selectという機能を継承しました。 しかし、それはそれに応じて動作していないXMLファイルです。いくつかは、mapper要素でextendsを使用 org.apache.ibatis.binding.BindingException: Invalid bound statement /.../MyBatisとXMLによる継承

ソー、私にとってそれは"Attribute extends not allowed here"

子の親に<cache/><cache-ref namespace="parent"/>を試みたが、それは、どのように

org.apache.ibatis.builder.IncompleteElementException: No cache for namespace 'parent'を投げたと言う: それはスローされます。 MyBatisの継承をXML構成で処理できますか?

答えて

0

属性は、resultMapにのみ適用されます。

キャッシュキャッシュ-REFは、キャッシュ管理に関するものです。

拡張のように見えるものはすべて、実際には因数分解です。define sqlフラグメントをXMLマッパーで使用し、他のマッパーで参照します。例えば:

-Mapper1.xml:

<sql id="a">/* dummy will never actually been included */</sql> 
<sql id="b"> something common to include </sql> 
<sql id="template"> 
    <include refid="a" /> 
    <include refid="Mapper1.b" /> 
</sql> 

-Mapper2.xml

<sql id="a"> something specific to this mapper </sql> 
<select id="statement"> 
    <include refid="Mapper1.template" /> 
</select> 

タグはちょうど参照断片のコピー/ペーストのように動作します。 その後、select文が得られます:

something specific to this mapper 
something common to include 

トリックが参照断片を前置かないで再生することです。上書きのように見えるかもしれません。

0

私は聖霊降臨祭balckwizzardキャッシュとキャッシュ-refは、この場合には有用ではない同意(私もどこかでXMLを拡張するために、それらを使用することをお勧め記事を読みましたが、私は思う戦後エラー)

I
Mybatis Generator: What's the best way to separate out “auto generated” and “hand edited files”

よろしく

:私はあまりにもあなたのために良いと思い答えを入れています