[jboss-user] [EJB 3.0] - throws javax.ejb.RemoveException, javax.ejb.EJBException, cau

mallikarjun_nbsg do-not-reply at jboss.com
Tue Jun 10 03:20:26 EDT 2008


Hi,

I am getting the following error when trying to use composite primary key for deletion of a record.

2008-06-10 12:29:36,176 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.RCVlanLoopDetectedTableHome] Executing SQL: SELECT rcVlanLoopDetectedVlanId, rcVlanLoopDetectedPortIndex, rcVlanLoopDetectedValue FROM rcVlanLoopDetectedTable WHERE ()
2008-06-10 12:29:36,176 ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException in method: public abstract void javax.ejb.EJBLocalObject.remove() throws javax.ejb.RemoveException,javax.ejb.EJBException, causedBy:
java.sql.SQLException: Syntax error or access violation,  message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1" 

The code that I have written is:

primary key class


  | public class RCVlanMacTablePK implements Serializable {
  | 
  | 	Long rcVlanMacVlanId;
  | 	String rcVlanMacAddr;
  | 
  | 	public RCVlanMacTablePK() {
  | 
  | 		this.rcVlanMacVlanId = null;
  | 		this.rcVlanMacAddr = null;
  | 
  | 	}
  | 
  | 	public RCVlanMacTablePK(HashMap<String, Object> values) {
  | 
  | 		this.rcVlanMacVlanId = Long.parseLong(values.get("rcVlanMacVlanId")
  | 				.toString());
  | 		this.rcVlanMacAddr = values.get("rcVlanMacAddr").toString();
  | 
  | 	}
  | }

In the session facade calling delete method for deleting the record in a table:


  | 	public String delete(HashMap<String, Object> values) {
  | 
  | 		try {
  | 			RCVlanMacTablePK pk = pkLoader(values);
  | 			home.remove(pk);
  | 		} catch (RemoveException e) {
  | 			log.info("RCVlan: Exception in deleted method " + e);
  | 		} catch (EJBException e) {
  | 			log.info("RCVlan: Exception in deleted method " + e);
  | 		} catch (NumberFormatException e) {
  | 			log.info("RCVlan: Exception in deleted method " + e);
  | 		}
  | 		return str;
  | 	}
  | 
  | 

above pkLoader(values) is the method to load the primark key class and passing that primary key class variable to the remove method and calling remove(Object primarykey) method of EJBLocalHome Interface. ie home.remove(pk);

In the ejb-jar.xml:


  |     <entity>
  |        <ejb-name>RCVlanMacTableHome</ejb-name>
  |          <local-home>com.sasken.sasems.server.beens.RCVlanMacTableHome</local-home>
  |          <local>com.sasken.sasems.server.beens.RCVlanMacTableRemote</local>
  |          <ejb-class>com.sasken.sasems.server.beens.RCVlanMacTableBean</ejb-class>
  |          <persistence-type>Container</persistence-type>
  | 	 <cmp-version>2.x</cmp-version>
  | 	 <abstract-schema-name>rcVlanMacTable</abstract-schema-name>
  |          <prim-key-class>com.sasken.sasems.server.beens.RCVlanMacTablePK</prim-key-class>
  |          <reentrant>False</reentrant>
  |      <cmp-field>
  |          <field-name>rcVlanMacVlanId</field-name>
  |      </cmp-field>
  |      <cmp-field>
  |          <field-name>rcVlanMacAddr</field-name>
  |      </cmp-field>
  |      <cmp-field>
  |          <field-name>rcVlanMacRowStatus</field-name>
  |      </cmp-field>
  |          </entity>
  | 

I am getting the above error when executing the same. Please let me what needs to be done for a composite primary key. I am using EJB2.0

Thank you,
Mallikarjun.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4156911#4156911

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4156911



More information about the jboss-user mailing list