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