Hi folks!
I have to have a many-to-many relationship, but every time i include the tag
'target-multiple="yes"' already expecting an java.util.Collection from the
function xdoclet wouldn't generate anything and i receive an error message
that generation of code failed. Well - a many-to-many relationship has to have
this tag. What could be the mistake? :(
I'll include the code snipplet above. I'm trying to build a unidirectional
relationship by now. I've tried a bidirectional relation before: It didn't
work as well. My unidirectional One-to-Many relationships works fine. :(
-----
This is the class:
/*
* Created on 18.12.2003
*/
package de.nine.cmp;
import javax.ejb.EntityBean;
/**
* @version 1.0
* @author Janine G�rtner
*
* @ejb.bean
* name="Kategorie"
* type="CMP"
* primkey-field="idKategorie"
* schema="FSKategorie"
* cmp-version="2.x"
*
* @ejb.persistence
* table-name="tKategorie"
*
* @ejb.finder
* query="SELECT OBJECT(a) FROM FSKategorie as a"
* signature="java.util.Collection findAll()"
*
* @ejb.value-object
* match="*"
*
* @ejb.util generate="physical"
**/
public abstract class KategorieBean implements EntityBean {
// ======================================================================
// Business Methoden
// ======================================================================
/**
* Kategoriedaten liefern
*
* @return Kategoriedaten
*
* @ejb.interface-method
* view-type="local"
*/
public abstract KategorieValue getKategorieValue();
/**
* Kategoriedaten setzen
*
* @param data: Kategoriedaten
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setKategorieValue(KategorieValue data);
// ======================================================================
// Methoden des Lebenszyklus
// ======================================================================
/**
* ejbCreate
*
* @param idKategorie: Kategorienummer des Kategorie
* @param name: Name des Kategorie
* @param info: Beschreibung des Kategorie
*
* @throws CreateException: Fehler bei der Erzeugung des Kategorie
*
* @ejb.create-method
*/
public java.lang.Integer ejbCreate(java.lang.Integer idKategorie,
java.lang.String name, java.lang.String info) throws javax.ejb.CreateException
{
this.setIdKategorie(idKategorie);
this.setName(name);
this.setInfo(info);
return null; // Spezifikation von EJB 2.0 verlangt null als
R�ckgabewert
}
/**
* ejbPostCreate
*
* @param idKategorie: Kategorienummer des Kategorie
* @param name: Name des Kategorie
* @param info: Beschreibung des Kategorie
*
* @throws CreateException: Fehler bei der Erzeugung des Kategorie
*/
public void ejbPostCreate(java.lang.Integer idKategorie, java.lang.String
name, java.lang.String info) throws javax.ejb.CreateException {
}
// ======================================================================
// CMP Felder
// ======================================================================
// ----------------------------------------------------------------------
/**
* Kategorienummer des Kategorie liefern
*
* @return Kategorienummer des Kategorie
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="IDKategorie"
* jdbc-type="INTEGER"
* sql-type="INTEGER"
* @ejb.pk-field
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.Integer getIdKategorie();
/**
* Kategorienummer des Kategorie setzen
*
* @param idKategorie: Kategorienummer des Kategorie
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setIdKategorie(java.lang.Integer idKategorie);
// ----------------------------------------------------------------------
/**
* Name des Kategorie liefern
*
* @return Name des Kategorie
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="NAME"
* jdbc-type="VARCHAR"
* sql-type="VARCHAR(50)"
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.String getName();
/**
* Name des Kategorie setzen
*
* @param name: Name des Kategorie
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setName(java.lang.String name);
// ----------------------------------------------------------------------
/**
* Beschreibung des Kategorie liefern
*
* @return Beschreibung des Kategorie
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="INFO"
* jdbc-type="VARCHAR"
* sql-type="TEXT"
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.String getInfo();
/**
* Beschreibung des Kategorie setzen
*
* @param info: Beschreibung des Kategorie
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setInfo(java.lang.String info);
// ======================================================================
// CMR Felder
// ======================================================================
// ----------------------------------------------------------------------
/**
* Artikel zur Kategorie liefern
*
* @return Artikelliste
*
* @ejb.interface-method
* view-type="local"
* @ejb.value-object
* aggregate-name="KategorieValue"
* members="de.nine.cmp.KategorieLocal"
* members-name="Kategorie"
* relation="external"
* type="Collection"
* @ejb.relation
* name="kategorie-artikel"
* role-name="kategorie-hat-artikel"
* target-ejb="Artikel"
* target-role-name="artikel-gehoert_zu-kategorie"
* target-multiple="yes"
*
* @jboss.relation-mapping
* style="relation-table"
* @jboss.relation-table
* table-name="tKategorie_hat_tArtikel"
* @jboss.relation
* fk-constraint="yes"
* fk-column="fkArtikel"
* related-pk-field="idArtikel"
* @jboss.target-relation
* fk-constraint="yes"
* fk-column="fkKategorie"
* related-pk-field="idKategorie"
*/
public abstract java.util.Collection getArtikel();
/**
* Artikel zur Kategorie setzen
*
* @param artikel: Artikelliste
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setArtikel(java.util.Collection artikel);
}
########################################################
Well, it should be necessary, but here also the other side:
/*
* Created on 18.12.2003
*/
package de.nine.cmp;
import javax.ejb.EntityBean;
/**
* @version 1.0
* @author Janine G�rtner
*
* @ejb.bean
* name="Artikel"
* type="CMP"
* primkey-field="idArtikel"
* schema="FSArtikel"
* cmp-version="2.x"
*
* @ejb.persistence
* table-name="tArtikel"
*
* @ejb.finder
* query="SELECT OBJECT(a) FROM FSArtikel as a"
* signature="java.util.Collection findAll()"
*
* @ejb.value-object
* match="*"
*
* @ejb.util generate="physical"
**/
public abstract class ArtikelBean implements EntityBean {
// ======================================================================
// Business Methoden
// ======================================================================
/**
* Artikeldaten liefern
*
* @return Artikeldaten
*
* @ejb.interface-method
* view-type="local"
*/
public abstract ArtikelValue getArtikelValue();
/**
* Artikeldaten setzen
*
* @param data: Artikeldaten
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setArtikelValue(ArtikelValue data);
// ======================================================================
// Methoden des Lebenszyklus
// ======================================================================
/**
* ejbCreate
*
* @param idArtikel: Artikelnummer des Artikel
* @param name: Name des Artikel
* @param info: Beschreibung des Artikel
* @param preis: Preis des Artikel
*
* @throws CreateException: Fehler bei der Erzeugung des Artikel
*
* @ejb.create-method
*/
public java.lang.Integer ejbCreate(java.lang.Integer idArtikel,
java.lang.String name, java.lang.String info, java.math.BigDecimal preis)
throws javax.ejb.CreateException {
this.setIdArtikel(idArtikel);
this.setName(name);
this.setInfo(info);
this.setPreis(preis);
return null; // Spezifikation von EJB 2.0 verlangt null als
R�ckgabewert
}
/**
* ejbPostCreate
*
* @param idArtikel: Artikelnummer des Artikel
* @param name: Name des Artikel
* @param info: Beschreibung des Artikel
* @param preis: Preis des Artikel
*
* @throws CreateException: Fehler bei der Erzeugung des Artikel
*/
public void ejbPostCreate(java.lang.Integer idArtikel, java.lang.String name,
java.lang.String info, java.math.BigDecimal preis) throws
javax.ejb.CreateException {
}
// ======================================================================
// CMP Felder
// ======================================================================
// ----------------------------------------------------------------------
/**
* Artikelnummer des Artikel liefern
*
* @return Artikelnummer des Artikel
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="IDARTIKEL"
* jdbc-type="INTEGER"
* sql-type="INTEGER"
* @ejb.pk-field
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.Integer getIdArtikel();
/**
* Artikelnummer des Artikel setzen
*
* @param idArtikel: Artikelnummer des Artikel
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setIdArtikel(java.lang.Integer idArtikel);
// ----------------------------------------------------------------------
/**
* Name des Artikel liefern
*
* @return Name des Artikel
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="NAME"
* jdbc-type="VARCHAR"
* sql-type="VARCHAR(50)"
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.String getName();
/**
* Name des Artikel setzen
*
* @param name: Name des Artikel
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setName(java.lang.String name);
// ----------------------------------------------------------------------
/**
* Beschreibung des Artikel liefern
*
* @return Beschreibung des Artikel
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="INFO"
* jdbc-type="VARCHAR"
* sql-type="TEXT"
* @ejb.interface-method
* view-type="local"
*/
public abstract java.lang.String getInfo();
/**
* Beschreibung des Artikel setzen
*
* @param info: Beschreibung des Artikel
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setInfo(java.lang.String info);
// ----------------------------------------------------------------------
/**
* Preis des Artikel liefern
*
* @return Preis des Artikel
*
* @ejb.persistent-field
* @ejb.persistence
* column-name="PREIS"
* jdbc-type="DECIMAL"
* sql-type="DECIMAL(11,2)"
* @ejb.interface-method
* view-type="local"
*/
public abstract java.math.BigDecimal getPreis();
/**
* Preis des Artikel setzen
*
* @param preis: Preis des Artikel
*
* @ejb.interface-method
* view-type="local"
*/
public abstract void setPreis(java.math.BigDecimal preis);
}
----
Please help me. :(
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user