This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I want to use the CMP 2.0 that would work with the oracle database sequence... I m using Jboss 4.0.1 as my application server.
I have successfully used the Oracle sequence with my CMP 2.0, ....but it works only when the primary key is a single field primary key and not a composite key for which PrimaryKeyClass would have to be used. Example when the primary key is a single field::
Here <field-name>no</field-name> is my field on which oracle-sequence is applied....and so that I dont have to pass that field while calling create method of the bean (CMP 2.0)...
The problem I face is that in one of the tables, the primary key is a composite key, constituting of 4 fields. On one of the fields out of these, the oracle-sequence is to be applied. But the above described method does not work in the case of composite primary key. Could some one please help me out in this ?
the ejb-jar.xml file has the following entry for the primary key class::==> <prim-key-class>com.business.process.EjbTwoPK</prim-key-class>
in the jbosscmp-jdbc.xml file the entry for the field on which sequence is applied, is::==> <unknown-pk> <unknown-pk-class>com.business.process.EjbTwoPK</unknown-pk-class> <field-name>emailId</field-name> <column-name>EMAIL_ID</column-name> <jdbc-type>Integer</jdbc-type> <sql-type>Integer</sql-type> <auto-increment/> </unknown-pk> <entity-command name="oracle-sequence"> <attribute name="sequence">MT_REQ_EMAIL_ID_SEQ</attribute> </entity-command>
But with above configuration, at deployment time, I get following exception ................. ==>
org.jboss.deployment.DeploymentException: Generation only supported with single PK field at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractCreateCommand.getGenerated PKField(JDBCAbstractCreateCommand.java:160) at org.jboss.ejb.plugins.cmp.jdbc.JDBCIdentityColumnCreateCommand.initGe neratedFields(JDBCIdentityColumnCreateCommand.java:46) at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractCreateCommand.init(JDBCAbs tractCreateCommand.java:84) at org.jboss.ejb.plugins.cmp.jdbc.keygen.JDBCOracleCreateCommand.init(JD BCOracleCreateCommand.java:37) at org.jboss.ejb.plugins.cmp.jdbc.JDBCCommandFactory.createCreateEntityC ommand(JDBCCommandFactory.java:151) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.startStoreManager(JDB CStoreManager.java:466) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManage
Please guide me in using Oracle-sequence with CMP 2.0 EntityBean when the primary key is composite key and the application server used is JBoss 4.0.1.