Hello

I've been trying to create an EJB with a composite key using xdocltet. Whenever I try to generate it XDoclet throws out the following. 'There com.premita.dcp.ejb.Service_ElementBean bean has a compound key. Please specify pk-field'

I'm at a loss as to what I'm doing wrong and would appreciate any help.

Thanks

Gary

My EJB is as follows




/* * Created on 23/03/2005 14:42:19 * * CMP EJB for SERVICE_ELEMENT in dcp database * */ package com.premita.dcp.ejb;

import java.io.Serializable;
import java.util.Collection;

/**
*
* <!-- begin-user-doc --> You can insert your documentation for '<em><b>Service_ElementBean</b></em>'. <!-- end-user-doc --> *
<!-- begin-lomboz-definition -->
<?xml version="1.0" encoding="UTF-8"?>
<lomboz:EJB xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"; xmlns:lomboz="http://lomboz.objectlearn.com/xml/lomboz";>
<lomboz:entity>
<lomboz:entityEjb>
<j2ee:display-name>Service_Element</j2ee:display-name>
<j2ee:ejb-name>Service_Element</j2ee:ejb-name>
<j2ee:ejb-class>com.premita.dcp.ejb.Service_ElementBean</j2ee:ejb-class>
<j2ee:persistence-type>Container</j2ee:persistence-type>
<j2ee:prim-key-class>com.premita.dcp.ejb.Service_ElementPrimaryKey</j2ee:prim-key-class>
<j2ee:cmp-version>2.x</j2ee:cmp-version>
<j2ee:abstract-schema-name>Service_Element</j2ee:abstract-schema-name>
</lomboz:entityEjb>
<lomboz:fieldMappings>
<lomboz:fieldName>service_element_id</lomboz:fieldName>
<lomboz:fieldType>java.lang.Integer</lomboz:fieldType>
<lomboz:columnName>SERVICE_ELEMENT_ID</lomboz:columnName>
<lomboz:jdbcType>VARCHAR</lomboz:jdbcType>
<lomboz:sqlType>INT</lomboz:sqlType>
<lomboz:readOnly>false</lomboz:readOnly>
<lomboz:primaryKey>true</lomboz:primaryKey>
</lomboz:fieldMappings>
<lomboz:fieldMappings>
<lomboz:fieldName>element_id</lomboz:fieldName>
<lomboz:fieldType>java.lang.Integer</lomboz:fieldType>
<lomboz:columnName>ELEMENT_ID</lomboz:columnName>
<lomboz:jdbcType>VARCHAR</lomboz:jdbcType>
<lomboz:sqlType>INT</lomboz:sqlType>
<lomboz:readOnly>false</lomboz:readOnly>
<lomboz:primaryKey>false</lomboz:primaryKey>
</lomboz:fieldMappings>
<lomboz:fieldMappings>
<lomboz:fieldName>service_id</lomboz:fieldName>
<lomboz:fieldType>java.lang.Integer</lomboz:fieldType>
<lomboz:columnName>SERVICE_ID</lomboz:columnName>
<lomboz:jdbcType>VARCHAR</lomboz:jdbcType>
<lomboz:sqlType>INT</lomboz:sqlType>
<lomboz:readOnly>false</lomboz:readOnly>
<lomboz:primaryKey>true</lomboz:primaryKey>
</lomboz:fieldMappings>
<lomboz:fieldMappings>
<lomboz:fieldName>sales_channel_id</lomboz:fieldName>
<lomboz:fieldType>java.lang.Integer</lomboz:fieldType>
<lomboz:columnName>SALES_CHANNEL_ID</lomboz:columnName>
<lomboz:jdbcType>VARCHAR</lomboz:jdbcType>
<lomboz:sqlType>INT</lomboz:sqlType>
<lomboz:readOnly>false</lomboz:readOnly>
<lomboz:primaryKey>false</lomboz:primaryKey>
</lomboz:fieldMappings>
<!-- end-lomboz-definition -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.bean name="Service_Element"
* jndi-name="dcp_Service_Element"
* local-jndi-name="dcp_Service_ElementLocal"
* type="CMP"
* schema="Service_Element"
* cmp-version="2.x"
* data-source="jdbc/dcp"
*
*--
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.bean ejb-name="Service_Element"
* jndi-name="dcp_Service_Element"
* @jonas.jdbc-mapping jndi-name="jdbc/dcp" jdbc-table-name="SERVICE_ELEMENT"
* --
*
* @ejb.persistence
* table-name="SERVICE_ELEMENT"
* @ejb.finder
* query="SELECT OBJECT(a) FROM Service_Element as a" * signature="java.util.Collection findAll()" *


* @ejb.pk class="com.premita.dcp.ejb.Service_ElementPrimaryKey"
*--
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.finder-method-jdbc-mapping  method-name="findAll"
*    jdbc-where-clause=""
* @jonas.jdbc-mapping  jndi-name="jdbc/dcp"
*    jdbc-table-name="SERVICE_ELEMENT"
*
*--
* <!-- end-xdoclet-definition -->
* @generated
**/
public abstract class Service_ElementBean extends Service_ElementBase
 implements javax.ejb.EntityBean {

/**
*
* <!-- begin-user-doc -->
* The ejbCreate method.
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.create-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated
*/
public com.premita.dcp.ejb.Service_ElementPrimaryKey ejbCreate() throws javax.ejb.CreateException {
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
return null;
// end-user-code
}


/**
* <!-- begin-user-doc -->
* The container invokes this method immediately after it calls ejbCreate.
* <!-- end-user-doc -->
*
* @ejb.transaction
* type="Supports"
*
* @generated
*/
public void ejbPostCreate() throws javax.ejb.CreateException {
// begin-user-code
// end-user-code
}
/**
*
* <!-- begin-user-doc -->
* The ejbCreate method.
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.create-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated NOT
*/
public com.premita.dcp.ejb.Service_ElementPrimaryKey ejbCreate(java.lang.Integer service_element_id,java.lang.Integer element_id,java.lang.Integer service_id,java.lang.Integer sales_channel_id /* T.getcolumns() 2 */) throws javax.ejb.CreateException {
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
setService_element_id(service_element_id);
setElement_id(element_id);
setService_id(service_id);
setSales_channel_id(sales_channel_id);
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
return null;
// end-user-code
}


/**
* <!-- begin-user-doc -->
* The container invokes this method immediately after it calls ejbCreate.
* <!-- end-user-doc -->
* @ejb.transaction
* type="Supports"
*
*
* @generated NOT
*/
public void ejbPostCreate( java.lang.Integer service_element_id,java.lang.Integer element_id,java.lang.Integer service_id,java.lang.Integer sales_channel_id ) throws javax.ejb.CreateException {


// begin-user-code
// end-user-code
} /**
*
* <!-- begin-user-doc -->
* The ejbCreate method.
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.create-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated NOT
*/
public com.premita.dcp.ejb.Service_ElementPrimaryKey ejbCreate(java.lang.Integer service_element_id,com.premita.dcp.ejb.ElementLocal element_id,com.premita.dcp.ejb.ServiceLocal service_id,com.premita.dcp.ejb.Sales_ChannelLocal sales_channel_id /* T.getcolumns() 2 */) throws javax.ejb.CreateException {
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
setService_element_id(service_element_id);
setService_id(((ServicePrimaryKey)service_id.getPrimaryKey()).getService_id());
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
return null;
// end-user-code
}
/**
* <!-- begin-user-doc -->
* The container invokes this method immediately after it calls ejbCreate.
* <!-- end-user-doc -->
* @ejb.transaction
* type="Supports"
*
*
* @generated NOT
*/
public void ejbPostCreate( java.lang.Integer service_element_id,com.premita.dcp.ejb.ElementLocal element_id,com.premita.dcp.ejb.ServiceLocal service_id,com.premita.dcp.ejb.Sales_ChannelLocal sales_channel_id /* T.getcolumns() 2 */) throws javax.ejb.CreateException {
// EJB 2.0 spec says return null for CMP ejbCreate methods.
// begin-user-code
setElement(element_id);
setService(service_id);
setSales_Channel(sales_channel_id);


}
/**
*
*
* <!-- begin-user-doc -->
* CMP Field service_element_id
*
* Returns the service_element_id
* @return the service_element_id
*
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="SERVICE_ELEMENT_ID"
* jdbc-type="VARCHAR"
* sql-type="INT"
* read-only="false"
* @ejb.pk-field
*
* @ejb.interface-method
*
* @ejb.transaction
* type="Supports"
*
* --
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.cmp-field-jdbc-mapping field-name="service_element_id"
* jdbc-field-name="SERVICE_ELEMENT_ID"
*
* --
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract java.lang.Integer getService_element_id();
/**
* <!-- begin-user-doc -->
* Sets the service_element_id
*
* @param java.lang.Integer the new service_element_id value
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.interface-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract void setService_element_id(java.lang.Integer service_element_id);
/**
*
*
* <!-- begin-user-doc -->
* CMP Field element_id
*
* Returns the element_id
* @return the element_id
*
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="ELEMENT_ID"
* jdbc-type="VARCHAR"
* sql-type="INT"
* read-only="false"
*
* @ejb.interface-method
*
* @ejb.transaction
* type="Supports"
*
* --
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.cmp-field-jdbc-mapping field-name="element_id"
* jdbc-field-name="ELEMENT_ID"
*
* --
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract java.lang.Integer getElement_id();
/**
* <!-- begin-user-doc -->
* Sets the element_id
*
* @param java.lang.Integer the new element_id value
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.interface-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract void setElement_id(java.lang.Integer element_id);
/**
*
*
* <!-- begin-user-doc -->
* CMP Field service_id
*
* Returns the service_id
* @return the service_id
*
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="SERVICE_ID"
* jdbc-type="VARCHAR"
* sql-type="INT"
* read-only="false"
* @ejb.pk-field
*
* @ejb.interface-method
*
* @ejb.transaction
* type="Supports"
*
* --
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.cmp-field-jdbc-mapping field-name="service_id"
* jdbc-field-name="SERVICE_ID"
*
* --
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract java.lang.Integer getService_id();
/**
* <!-- begin-user-doc -->
* Sets the service_id
*
* @param java.lang.Integer the new service_id value
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.interface-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract void setService_id(java.lang.Integer service_id);
/**
*
*
* <!-- begin-user-doc -->
* CMP Field sales_channel_id
*
* Returns the sales_channel_id
* @return the sales_channel_id
*
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="SALES_CHANNEL_ID"
* jdbc-type="VARCHAR"
* sql-type="INT"
* read-only="false"
*
* @ejb.interface-method
*
* @ejb.transaction
* type="Supports"
*
* --
* This is needed for JOnAS.
* If you are not using JOnAS you can safely remove the tags below.
* @jonas.cmp-field-jdbc-mapping field-name="sales_channel_id"
* jdbc-field-name="SALES_CHANNEL_ID"
*
* --
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract java.lang.Integer getSales_channel_id();
/**
* <!-- begin-user-doc -->
* Sets the sales_channel_id
*
* @param java.lang.Integer the new sales_channel_id value
* <!-- end-user-doc -->
*
* <!-- begin-xdoclet-definition -->
* @ejb.interface-method
* @ejb.transaction
* type="Supports"
*
* <!-- end-xdoclet-definition -->
* @generated
*/
public abstract void setSales_channel_id(java.lang.Integer sales_channel_id);
}






-------------------------------------------------------
This SF.net email is sponsored by Microsoft Mobile & Embedded DevCon 2005
Attend MEDC 2005 May 9-12 in Vegas. Learn more about the latest Windows
Embedded(r) & Windows Mobile(tm) platforms, applications & content.  Register
by 3/29 & save $300 http://ads.osdn.com/?ad_id=6883&alloc_id=15149&op=click
_______________________________________________
xdoclet-user mailing list
xdoclet-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to