hi all
i am using sqlserver 2000 and jboss 3.2.3
i have a table with identity column
table department
depid int (with identity)
depname varchar
the problem is that when i am trying to insert a a value in a table with identity through cmp i get the following error:
Cannot insert explicit value for identity column in table 'department' when IDENTITY_INSERT is set to OFF.
i even went to the database and did the IDENTITY_INSERT to off.
here is my ejb-jar.xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC
"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<description>Teste and Story</description>
<display-name>Teste and Story</display-name>
<enterprise-beans>
<entity>
<display-name>Department Entity CMP Bean</display-name>
<ejb-name>Department</ejb-name>
<unknown-pk>
<unknown-pk-class>java.lang.Integer</unknown-pk-class>
<column-name>depId</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>int(4)</sql-type>
<auto-increment/>
</unknown-pk>
<entity-command name="key-generator" class="org.jboss.ejb.plugins.cmp.jdbc.keygen.JDBCKeyGeneratorCreateCommand"> <attribute name="key-generator-factory">UUIDKeyGeneratorFactory</attribute>
</entity-command>
<entity-command name="mssql-fetch-key"> <attribute name="pk-sql">SELECT @@IDENTITY</attribute>
</entity-command>
<home>masters.department.DepartmentHome</home>
<remote>masters.department.Department</remote>
<ejb-class>masters.department.DepartmentBean</ejb-class>
<reentrant>True</reentrant>
<persistence-type>Container</persistence-type>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>department</abstract-schema-name>
<primkey-field>DepId</primkey-field>
<prim-key-class>java.lang.Integer</prim-key-class>
<cmp-field><field-name>DepId</field-name></cmp-field>
<cmp-field><field-name>DepName</field-name></cmp-field>
</entity>
<resource-ref> <description>Default Database Connection</description><res-ref-name>jdbc/TestDS</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth> </resource-ref>
</enterprise-beans>
<entity-commands> <!-- define a command that uses an Oracle sequence to generate keys -->
<entity-command name="keygen" class="org.jboss.ejb.plugins.cmp.jdbc.keygen.JDBCSQLServerCreateCommand"> </entity-command> </entity-commands>
<assembly-descriptor >
<container-transaction>
<method>
<ejb-name>Story</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor >
</ejb-jar>
and here are my create methods:
public Integer ejbCreate(String DepName) throws RemoteException, CreateException {
System.out.println("In ejbCreate()");
setDepName(DepName);
return null;
}
public void ejbPostCreate(String DepName) {
System.out.println("In ejbPostCreate()");
}