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

Reply via email to