You can, but not directly in how you have it.

IBatis includes a feature called fragements.  In your map file, put your
*core* sql in a statement such as
    <sql id="Fragment">
      insert something
    </sql>

Then down in your real insert statement reference it as such:
    <insert id="test">
      <include refid="Fragment"></include>
    </insert>

Does this help?


On Fri, Jul 10, 2009 at 8:19 AM, Régis BRULEY <re...@bruley.org> wrote:

> Hi,
>
> It's my first post in this mail-list ... so hi everybody.
>
> I writing this mail, because I don't know if it's possible to reuse some
> previous statements in an other statement ? ...
>
> Let me explain myself :
>
> I have a class *UniverseFilter* which is mapped. Every thing works.
> I have an class *UniverseDefinition *which contains a list of *
> UniverseFilter*.
>
> I get every *UniverseFilter* in my object with a resultMap like this :
>
> <resultMaps>
>     <resultMap id="UniverseDefinitionMap" class="UniverseDefinition"
> groupBy="IdRessource">
>       <result column="id_universedef" property="IdUniverseDefinition" />
>       <result column="id_ressource" property="IdRessource" />
>       <result column="dateval" property="Date" />
>       <result column="generatortype" property="GeneratorType" />
>       <result column="filterorder" property="FilterOrder" />
>
>       *<result column="id_universedef" property="FilterList"
> select="UniverseFilterSelectByIdUnivRef" />*
> [...]
>
> Every works well for the select statements.
>
>
> But, i'd like to make an insert statement, and reuse the insert statement i
> made for the class *UniverseFilter*.
>
>     <insert id="UniverseDefinitionInsert"
> parameterClass="UniverseDefinition" resultClass="int">
>       insert into dbo.r_universedef (id_universedef, id_ressource, dateval,
> generatortype, filterorder)
>       values (#IdUniverseDefinition:int#, #IdRessource:int#,
> #Date:DATETIME#, #GeneratorType:int#, #FilterOrder:VARCHAR# );
>
>       <dynamic prepend="">
>        <isGreaterThan prepend="" property="FilterList.Count"
> compareValue="0">
>           <iterate prepend="" open="" close="" property="FilterList"
> conjunction="; ">
>
> *                       REUSE OF STATEMENT "INSERT_UNIVERSEFILTER" ...
> with paramater FilterList[]* (typed *UniverseFilter*)
>
>           </iterate>
>         </isGreaterThan>
>       </dynamic>
>     </insert>
>
> Is it possible ?
>
> Thanks
>
> Régis
>
>
>
> NB: iBatis is really great !
> NB2: sorry, i'm french and my english is suffering ...
>
>
>
>


-- 
Michael J. McCurrey
Read with me at http://www.mccurrey.com
http://chaoticmindramblings.blogspot.com/

Reply via email to