RE: Primary key and sequence

From: Sami Mohammed (SMOHAMME..ndependenthealth.com)
Date: Wed Mar 09 2005 - 17:00:28 EST

  • Next message: Fredrik Liden: "Is manually creating PKs throwing Cayenne off?"

    Hi laszlo,

    Thank you very much. i did like this

                              // PK_WEB_CW_TABLE_LIST is sequence name created in oracle DB
                            Map queryParams = new HashMap();
                            queryParams.put("CW_SEQ_NAME", "PK_WEB_CW_TABLE_LIST");
                            
                            // We have create a Query (CW_PK_SEQUENCE_QUERY)in DataMap_ABC.map.xml file

                                                   // see below how i worte query in DataMap_ABC.map.xml
                                                  /*<query name="CW_PK_SEQUENCE_QUERY" factory="org.objectstyle.cayenne.map.SQLTemplateBuilder" root="data-map"
                                                    root- name="DataMap_ABCs">

                    <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>

                    <sql adapter-class="org.objectstyle.cayenne.dba.oracle.OracleAdapter"><![CDATA[SELECT MYSEACHMA. $CW_SEQ_NAME .NEXTVAL AS NEXTVAL FROM DUAL]]></sql>
            </query>

            */ // Perform the sequence query to get the next PK number
                            List results = context.performQuery("CW_PK_SEQUENCE_QUERY", queryParams, true);
                            Map sequenceMapRow = (Map) results.get(0);
                            BigDecimal pkNextVal =(BigDecimal) sequenceMapRow..get(Constants.CW_SEQ_QUERY_NEXTVAL);
                            
                                                   int pkNextValInt = pkNextVal.intValue();
                                                 //set primary key in the table using sequence
                                                  newCwTable.setCwTableKey(pkNextValInt);

    it is working fine.
    --------------------------------------

    BUT FROM YOUR SOLUTION(Cayenne.xml using modeler), JUST I HAVE TO CHECK THE CHECKBOX (CUSTOMIZE PRIMARY KEY GENERATION) AND THEN

    DbEntity Name : MyTable
    Sechma name: MySecham
    DATABASE OBJECT NAME:(what i have to give here my database name or what)
    and how to call or set in the program......

    what to set in this code ...... newCwTable.setCwTableKey(PrimaryKey);
    context.commitChanges();

    thanks
    sami

    CONFIDENTIALITY NOTICE. This e-mail and attachments, if any, may contain confidential information which is privileged and protected from disclosure by Federal and State
    confidentiality laws rules and regulations. This e-mail and attachments, if any, are intended for the designated addressee only. If you are not the designated addressee, you
    are hereby notified that any disclosure, copying, or distribution of this e-mail and its attachments, if any, may be unlawful and may subject you to legal consequences. If you
    have received this e-mail and attachments in error, please contact Independent Health immediately at (716) 631-3001 and delete the e-mail and its attachments from your
    computer. Thank you for your attention

    >>> lspoor_cayenn..otmail.com 03/09/05 04:02PM >>>
    Hi Sami,

    If you use Oracle, you can use sequences. However, you will have to tell
    your cayenne.xml using the modeler. Select your DataMap --> Select a
    database entity --> Select the Entity tab --> check 'Customize primary key
    generation' and point to your sequence here.

    Hope this helps, laszlo

    >From: "Sami Mohammed" <SMOHAMME..ndependenthealth.com>
    >Reply-To: cayenne-use..bjectstyle.org
    >To: <cayenne-use..bjectstyle.org>
    >Subject: Primary key and sequence
    >Date: Wed, 09 Mar 2005 15:22:26 -0500
    >
    >
    >Hi
    >
    >I am try to save data to the table , i have created sequenc DB, but how to
    >attached the or set sequence .
    >see the code below . when i am submit i am getting error--> sequence does
    >not exist at oracle.jdbc.dbaccess.DBError.throwSqlException
    >
    >
    > CwAddForm addCwTableForm =
    >(CwAddForm) form;
    >
    > // get session DataContext to perform database transactions
    > DataContext context =
    >BasicServletConfiguration.getDefaultContext(request.getSession());
    >
    > try
    > {
    > // create new ABC table object and register it with DataContext
    > WebCwTableList newCwTable =
    > (WebCwTableList)
    >context.createAndRegisterNewObject(WebCwTableList.class);
    >
    > // Set the attributes of theABC table object
    > newCwTable.setCwTableName(addCwTableForm.getTableName());
    > newCwTable.setCwTableDesc(addCwTableForm.getTableDesc());
    > newCwTable.setCwObjectName(addCwTableForm.getObjectName());
    > newCwTable.setLastChngDate(new Date());
    > newCwTable.setLastUsrKey(user.getUserKey());
    >
    > // commit all the changes to the database
    > context.commitChanges();
    >
    > }
    > catch (Exception e)
    > {
    > context.rollbackChanges();
    > errors = CwUtils.processException(errors, e);
    > }
    >
    >
    >Thanks
    >sami
    >
    >CONFIDENTIALITY NOTICE. This e-mail and attachments, if any, may contain
    >confidential information which is privileged and protected from disclosure
    >by Federal and State
    >confidentiality laws rules and regulations. This e-mail and attachments,
    >if any, are intended for the designated addressee only. If you are not the
    >designated addressee, you
    >are hereby notified that any disclosure, copying, or distribution of this
    >e-mail and its attachments, if any, may be unlawful and may subject you to
    >legal consequences. If you
    >have received this e-mail and attachments in error, please contact
    >Independent Health immediately at (716) 631-3001 and delete the e-mail and
    >its attachments from your
    >computer. Thank you for your attention
    >

    _________________________________________________________________
    FREE pop-up blocking with the new MSN Toolbar - get it now!
    http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/



    This archive was generated by hypermail 2.0.0 : Wed Mar 09 2005 - 17:00:57 EST