[jboss-user] [Beginners Corner] - Re: Composite Primary Key in an EntityBean (CMP) - XDoclet

bronks do-not-reply at jboss.com
Sun Aug 20 07:35:46 EDT 2006


"lafr" wrote : Add
  |          * @ejb.pk-field
  | to the getters comment of the PK-fields.
  | 
Thanks. I have done this but i am getting the following Deploymenterror:

anonymous wrote : [verifier] EJB spec violation: 
  | Bean   : OrderItem
  | Method : public OrderItemBean$PrimaryKey ejbCreate(Integer, Integer, Integer) throws CreateException
  | Section: 10.6.4
  | Warning: The return type of an ejbCreate(...) method must be the entity bean's primary key type.

What should i write at "primkey-field=" ???

I can not find the mistake. Please take a look at my code:

/**
  |  * <!-- begin-xdoclet-definition -->
  |  * @ejb.bean name="OrderItem" 
  |  *	jndi-name="OrderItem"
  |  *	type="CMP" 
  |  *  primkey-field="ordernumber"     ?????????????????????????????????
  |  *  schema="OrderItemSCHEMA" 
  |  *  cmp-version="2.x"
  |  *
  |  *  @ejb.persistence 
  |  *   table-name="public.orderitems" 
  |  * 
  |  * @ejb.finder 
  |  *    query="SELECT OBJECT(a) FROM OrderItemSCHEMA as a"  
  |  *    signature="java.util.Collection findAll()"  
  |  *
  |  * @ejb.pk class="OrderItemBean.PrimaryKey"
  |  *
  |  *
  |  * @jboss.persistence datasource="java:/jdbc/pgtestdb" datasource-mapping="PostgreSQL 8.0" table-name="zz" create-table="true" remove-table="false" alter-table="false"
  |  * <!-- end-xdoclet-definition -->
  |  * @generated
  |  **/
  | 
  | public abstract class OrderItemBean implements javax.ejb.EntityBean {
  | 
  | 	/**
  | 	 * Generated Primary Key Class
  | 	 * @generated
  | 	 */
  | 	public class PrimaryKey implements java.io.Serializable {
  | 		/**
  | 		 * @generated
  | 		 */
  | 		public java.lang.Integer ordernumber;
  | 
  | 		/**
  | 		 * @generated
  | 		 */
  | 		public java.lang.Integer orderitemnumber;
  | 	}
  | 
  | 	/**
  | 	 *
  | 	 * <!-- begin-user-doc -->
  | 	 * The  ejbCreate method.
  | 	 * <!-- end-user-doc -->
  | 	 *
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 * @ejb.create-method 
  | 	 * <!-- end-xdoclet-definition --> 
  | 	 * @generated
  | 	 */
  | 	public OrderItemBean.PrimaryKey ejbCreate(Integer aOrdernumber, 
  | 											  Integer aOrderitemnumber, 
  | 											  Integer aQuantity)
  | 			throws javax.ejb.CreateException {
  | 
  | 		setOrdernumber(aOrdernumber);
  | 		setOrderitemnumber(aOrderitemnumber);
  | 		setQuantity(aQuantity);
  | 		return null;
  | 
  | 	}
  | 
  | 	/**
  | 	 * <!-- begin-user-doc -->
  | 	 * The container invokes this method immediately after it calls ejbCreate.
  | 	 * <!-- end-user-doc -->
  | 	 * 
  | 	 * @generated
  | 	 */
  | 	public void ejbPostCreate() throws javax.ejb.CreateException {
  | 		// begin-user-code
  | 		// end-user-code
  | 	}
  | 
  | 	/**
  | 	 *
  | 	 *
  | 	 * <!-- begin-user-doc -->
  | 	 * CMP Field ordernumber
  | 	 *
  | 	 * Returns the ordernumber
  | 	 * @return the ordernumber
  | 	 * 
  | 	 * <!-- end-user-doc -->
  | 	 *
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 *
  | 	 * @ejb.persistent-field 
  | 	 * @ejb.persistence
  | 	 *    column-name="ordernumber"
  | 	 *     jdbc-type="INTEGER"
  | 	 *     sql-type="int4"
  | 	 *     read-only="false"
  | 	 * @ejb.pk-field 
  | 	 *
  | 	 * @ejb.interface-method
  | 	 * 
  | 	 * <!-- end-xdoclet-definition --> 
  | 	 * @generated
  | 	 */
  | 	public abstract java.lang.Integer getOrdernumber();
  | 
  | 	/**
  | 	 * <!-- begin-user-doc -->
  | 	 * Sets the ordernumber
  | 	 * 
  | 	 * @param java.lang.Integer the new ordernumber value
  | 	 * <!-- end-user-doc -->
  | 	 * 
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 * @ejb.interface-method
  | 	 * <!-- end-xdoclet-definition -->
  | 	 * @generated 
  | 	 */
  | 	public abstract void setOrdernumber(java.lang.Integer ordernumber);
  | 
  | 	/**
  | 	 *
  | 	 *
  | 	 * <!-- begin-user-doc -->
  | 	 * CMP Field orderitemnumber
  | 	 *
  | 	 * Returns the orderitemnumber
  | 	 * @return the orderitemnumber
  | 	 * 
  | 	 * <!-- end-user-doc -->
  | 	 *
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 *
  | 	 * @ejb.persistent-field 
  | 	 * @ejb.persistence
  | 	 *    column-name="orderitemnumber"
  | 	 *     jdbc-type="INTEGER"
  | 	 *     sql-type="int4"
  | 	 *     read-only="false"
  | 	 * @ejb.pk-field 
  | 	 *
  | 	 * @ejb.interface-method
  | 	 * 
  | 	 * <!-- end-xdoclet-definition --> 
  | 	 * @generated
  | 	 */
  | 	public abstract java.lang.Integer getOrderitemnumber();
  | 
  | 	/**
  | 	 * <!-- begin-user-doc -->
  | 	 * Sets the orderitemnumber
  | 	 * 
  | 	 * @param java.lang.Integer the new orderitemnumber value
  | 	 * <!-- end-user-doc -->
  | 	 * 
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 * @ejb.interface-method
  | 	 * <!-- end-xdoclet-definition -->
  | 	 * @generated 
  | 	 */
  | 	public abstract void setOrderitemnumber(java.lang.Integer orderitemnumber);
  | 
  | 	/**
  | 	 *
  | 	 *
  | 	 * <!-- begin-user-doc -->
  | 	 * CMP Field quantity
  | 	 *
  | 	 * Returns the quantity
  | 	 * @return the quantity
  | 	 * 
  | 	 * <!-- end-user-doc -->
  | 	 *
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 *
  | 	 * @ejb.persistent-field 
  | 	 * @ejb.persistence
  | 	 *    column-name="quantity"
  | 	 *     jdbc-type="INTEGER"
  | 	 *     sql-type="int4"
  | 	 *     read-only="false"
  | 	 *  
  | 	 *
  | 	 * @ejb.interface-method
  | 	 * 
  | 	 * <!-- end-xdoclet-definition --> 
  | 	 * @generated
  | 	 */
  | 	public abstract java.lang.Integer getQuantity();
  | 
  | 	/**
  | 	 * <!-- begin-user-doc -->
  | 	 * Sets the quantity
  | 	 * 
  | 	 * @param java.lang.Integer the new quantity value
  | 	 * <!-- end-user-doc -->
  | 	 * 
  | 	 * <!-- begin-xdoclet-definition --> 
  | 	 * @ejb.interface-method
  | 	 * <!-- end-xdoclet-definition -->
  | 	 * @generated 
  | 	 */
  | 	public abstract void setQuantity(java.lang.Integer quantity);
  | 
  | }


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

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



More information about the jboss-user mailing list