Problem with relation between BMP EJB and CMP EJB
jbosskiki Jul 5, 2004 1:52 PMHi,
I'm using JBOSS 3.2.3 with Oracle 8i. I've two EJB User and Country, User is a BMP and Country a CMP. When I try to deploy I've this error:
"Entity: User not found for relation : User Country.
Code:
/**
* @ejb.bean
* name="User"
* type="BMP"
* primkey-field="idUser"
* view-type = "local"
*
* @ejb.value-object
* match = "*"
*
* @ejb.dao
* class = "seryx.dictionnary.bean.bmp.dao.UserDAO"
* impl-class = "seryx.dictionnary.bean.bmp.dao.UserDAOImpl"
*
* @ejb.util
* generate = "physical"
*
* @ejb.pk
* generate = "false"
* class = "java.lang.Long"
* package = "java.lang"
*
* @jboss.persistence
* create-table="false"
* remove-table="false"
*/
public abstract class UserEJB implements EntityBean
{
 Long idUser;
 String login;
 String password;
 String email;
 Long idCountry;
 Long idState;
 int standBy;
....
/**
* Returns user's country.
*
* @ejb.interface-method
* view-type="local"
*
* @ejb.relation
* name = "User-Country"
* role-name = "User-has-a-Country"
* target-multiple = "yes"
* target-role-name="Country-has-Users"
* target-ejb="Country"
*
* @jboss.relation
* fk-column = "IdCountry"
* related-pk-field = "idCountry"
* fk-constraint = "true"
*
* @dao.call
* name = "getCountry"
*
* @return the country.
*/
public abstract CountryLocal getCountry();
/**
* Sets User's country.
*
* @param seryx.dictionnary.bean.cmp.CountryLocal the new Country value
*
* @ejb.interface-method
* view-type = "local"
*
* @dao.call
* name = "setCountry"
*/
public abstract void setCountry(UserLocal country);
}
/**
 * @ejb.bean
 * name="Country"
 * type="CMP"
 * primkey-field="idCountry"
 * schema="sCountry"
 * cmp-version="2.x"
 * view-type = "local"
 *
 * @ejb.persistence
 * table-name="Country"
 *
 * @ejb.finder
 * view-type="local"
 * signature="java.util.Collection findAll()"
 * query="SELECT OBJECT(o) FROM sCountry o"
 *
 * @ejb.value-object
 * name="Country"
 * match="*"
 *
 * @ejb.util
 * generate = "physical"
 *
 * @jboss.persistence
 * create-table="false"
 * remove-table="false"
 *
 * @jboss.entity-command
 * name="CountryPk"
 * class="org.jboss.ejb.plugins.cmp.jdbc.keygen.JDBCOracleCreateCommand"
 *
 * @jboss.entity-command-attribute
 * name="sequence"
 * value="seq_country_id"
 *
 */
public abstract class CountryEJB implements EntityBean
{
/**
 * The ejbCreate method.
 *
 * @ejb.create-method
 */
public java.lang.Long ejbCreate(Long idCountry, String country) throws javax.ejb.CreateException
{
 setIdCountry(idCountry);
 setCountry(country);
 return null;
}
/**
 * The container invokes this method immediately after it calls ejbCreate.
 *
 */
public void ejbPostCreate(Long idCountry, String country) throws javax.ejb.CreateException
{
}
/**
* Returns the idCountry
* @return the idCountry
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="IdCountry"
* sql-type="number"
* @ejb.pk-field
* @ejb.interface-method
*/
public abstract java.lang.Long getIdCountry();
/**
* Sets the idCountry
*
* @param java.lang.Long the new idCountry value
*
* @ejb.interface-method
*/
public abstract void setIdCountry(java.lang.Long idCountry);
/**
* Returns the country
* @return the country
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="Country"
* sql-type="varchar"
*
* @ejb.interface-method
*/
public abstract java.lang.String getCountry();
/**
* Sets the country
*
* @param java.lang.String the new country value
*
* @ejb.interface-method
*/
public abstract void setCountry(java.lang.String country);
/**
* @ejb.interface-method
* view-type = "local"
*/
public abstract CountryValue getCountryValue();
/**
* Sets the CountryValue
*
* @param seryx.dictionnary.bean.cmp.CountryValue the new CountryValue
*
* @ejb.interface-method
* view-type = "local"
*/
public abstract void setCountryValue(CountryValue value);
/**
* return the states
* @return the states
*
* @ejb.relation
* name="Country-State"
* role-name="Country-has-States"
* target-mulitple="no"
* target-role-name="State-has-a-Country"
* target-ejb="State"
*
* @jboss.target-relation
* related-pk-field="idCountry"
* fk-column="IdCountry"
*
* @ejb.interface-method
*/
public abstract Collection getStates();
/**
* Sets the states
*
* @param java.util.Collection the new states.
*
* @ejb.interface-method
*/
public abstract void setStates(Collection states);
}
Thanks for any help. I'm trying to solve it for several weeks. Sorry for my english which is not so good!...
Mike
 
    