0 Replies Latest reply on Oct 26, 2007 1:19 PM by smougenot

    auto-increment trouble

    smougenot

      I'm using JBoss 3.2.3 and Sybase ASE 12.5.4.
      (can't change those versions)

      I'm not hable to have my generated field (not a key) read after insert/update using <auto-increment/> in jbosscmp-jdbc.xml.

      The database schema contains a "version like" column for each table.
      This column is auto generated by the database (in Sybase it is known as a timestamp even if it a varbinary data) this field is a Java byte[] (returned by the driver) mapped in a Object bean property.
      The value is changed every time the line is modified (done by the database).

      My trouble was this value wasn't read after the insert (or update). I found the interesting <auto-increment/> for the configuration then tried to use it.

      jbosscmp-jdbc.xml (the column here is Mvs_timestamp)

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd">
      
      <jbosscmp-jdbc>
       <defaults>
       <datasource>java:/jdbc/XXXPooled</datasource>
       <datasource-mapping>Sybase</datasource-mapping>
       </defaults>
       <enterprise-beans>
       <entity>
       <ejb-name>LO_MVT_STOCK</ejb-name>
       <create-table>false</create-table>
       <remove-table>false</remove-table>
       <table-name>LO_MVT_STOCK</table-name>
       <cmp-field>
       <field-name>Mvs_clef</field-name>
       <column-name>MVS_CLEF</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>Mvs_user</field-name>
       <column-name>MVS_USER</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>Mvs_qte</field-name>
       <column-name>MVS_QTE</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>Mvs_motif</field-name>
       <column-name>MVS_MOTIF</column-name>
       </cmp-field>
       ...
       <cmp-field>
       <field-name>Mvs_date_crea</field-name>
       <column-name>MVS_DATE_CREA</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>Mvs_date_sup</field-name>
       <column-name>MVS_DATE_SUP</column-name>
       </cmp-field>
       <cmp-field>
       <field-name>Mvs_timestamp</field-name>
       <column-name>MVS_TIMESTAMP</column-name>
       <auto-increment/>
       </cmp-field>
       </entity>
       </enterprise-beans>
       <dependent-value-classes>
       </dependent-value-classes>
      </jbosscmp-jdbc>
      


      When I run a simple unit test that creates a new line the generated column is not read.
      Here is the SQL statements :
      18:10:02,024|16|5|statement|SELECT COUNT(*) FROM LO_MVT_STOCK WHERE MVS_CLEF=?
      18:10:02,071|32|5|statement|INSERT INTO LO_MVT_STOCK (MVS_CLEF, MVS_USER, MVS_QTE, MVS_MOTIF, ... , MVS_DATE_CREA, MVS_DATE_SUP, MVS_TIMESTAMP) VALUES (?, ... ?)
      18:10:02,102|0|5|commit||
      


      Please could someone tell me what to do?
      Is it impossible ? (I hope not)
      If it's not possible what could you suggest me to do?

      Thank you for your attention
      Sylvain