hello again,


i have tried this in different versions but cant get the expected result:

here my table definition as sql:

 ID                                        NOT NULL NUMBER
 WORKFLOW_ID                               NOT NULL NUMBER
 ACTION_ID                                 NOT NULL NUMBER
 URL                                       NOT NULL VARCHAR2(255)
 NAME                                      NOT NULL VARCHAR2(255)
 TARGET                                             VARCHAR2(255)



here my table definition in abatorConfig.xml:

  <table schema="c108272dev" tableName="ODM_LINK">
<generatedKey identity="true" column="id" sqlStatement="SELECT c108272dev.ODM_LINK_COUNTER.nextval AS id FROM dual" />
    </table>



the sqlmap i get looks like this:

<insert id="abatorgenerated_insert" parameterClass="org.dea.odm.model.abator.model.OdmLink">
    <!--
WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Wed Jul 05 18:19:23 CEST 2006.
    -->
    insert into c108272dev.ODM_LINK (WORKFLOW_ID, ACTION_ID, URL, NAME, TARGET)
    values (#workflowId:DECIMAL#, #actionId:DECIMAL#, #url:VARCHAR#,
      #name:VARCHAR#, #target:VARCHAR#)

    <selectKey keyProperty="id" resultClass="java.lang.Long">
      SELECT c108272dev.ODM_LINK_COUNTER.nextval AS id FROM dual
    </selectKey>
  </insert>



.. and i'm missing the ID to be inserted and taken from the query below.


the desired result would be something like this:


<insert id="insertLink" parameterClass="org.dea.odm.model.dao.beans.LinkDaoBean">
                <selectKey resultClass="long" keyProperty="id">
                select ODM_LINK_COUNTER.NEXTVAL as "id" from dual
                </selectKey>
                INSERT INTO ODM_LINK
                (ID, WORKFLOW_ID, ACTION_ID, URL, NAME, TARGET)
VALUES (#id#, #workflowId#, #actionId#, #url#, #name#, #target#)
        </insert>




.. i cant find out why ibatis does not insert the primary key 'id' ...


thanks for advices
tom.


On Tue, 4 Jul 2006, Jeff Butler wrote:

The iBATIS function you are looking for is <selectKey> - this is
specifically designed for this situation.

Abator will generate <selectKey> statements for you if you use the
<generatedKey> Abator configuration element.

Jeff Butler




On 7/4/06, Thomas Karl Schwaerzler <[EMAIL PROTECTED]>
wrote:


hi,

doesn't really look like:

OdmLinkDAOImpl.java:

<snip>

   /**
     * This method was generated by Abator for iBATIS.
     * This method corresponds to the database table c108272dev.ODM_LINK
     *
     * @abatorgenerated Tue Jul 04 18:48:58 CEST 2006
     */
    public void insert(OdmLink record) {
        insert("c108272dev_ODM_LINK.abatorgenerated_insert", record);
    }


</snip>

greets
tom.

On Tue, 4 Jul 2006, Graeme J Sweeney wrote:

> On Tue, 4 Jul 2006, Thomas Karl Schwaerzler wrote:
>
> You don't have to do this
>
>>              link.setId(id);
>
> as this call
>
>>              linkDao.insert(link);
>
> will return you the id. Check the javadoc of your DAO (or
LinkDAOImpl.java).
>
> --
> Graeme -
>


Reply via email to