The following code works.  It is the result of pulling together all the various 
references on how to get Auto increment and XDoclet working.  Hope it helps.

/*
 * This file is Copyright Adam Young.  
 * Contact [EMAIL PROTECTED]
 */
package com.younglogic.eventful.ejb;
import java.rmi.RemoteException;
import java.sql.Date;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
/**
 * @ejb.bean
 *     name="ScheduledEvent"
 *     local-jndi-name="Eventful/ScheduledEvent"
 *     view-type="local"
 *     type="CMP"
 *     primkey-field="id"
 * 
 * @ejb.persistence
 *     table-name="scheduled_event"
 * @jboss.unknown-pk
 *       class="java.lang.Integer" 
 *       auto-increment="true"
 *       sql-type="serial"
 *       jdbc-type="INTEGER"  
 * @jboss.entity-command 
 *     name="postgresql-fetch-seq"
 * 
 * @ejb.value-object
 *     match="*"
 * @ejb.pk
 *     class="java.lang.Integer"
 *     generate="false"
 * @ejb.finder
 *     signature="java.util.Collection findByDate(java.sql.Date d)"
 *     query="SELECT OBJECT(e) from ScheduledEvent e where e.date = ?1"
 *     unchecked="true"
 * @ejb.finder
 *     signature="java.util.Collection findDateInRange(java.sql.Date 
fromDate,java.sql.Date toDate)"
 *     query="SELECT OBJECT(e) from ScheduledEvent e where e.date = ?1 or ( e.date > 
?1 and e.date < ?2 ) or e.date = ?2 "
 *     unchecked="true"
 */
public abstract class ScheduledEventBean implements EntityBean {
    private EntityContext entityContext;
    /**
     * TODO add a role for this method
     * @ejb.permission unchecked="true"
     * @ejb.create-method
     * @param beanPK
     */
    public Integer ejbCreate(ScheduledEventValue value)
        throws CreateException {
        setDate(value.getDate());
        setDescription(value.getDescription());
        return null;
    }
    public void ejbPostCreate(ScheduledEventValue value)
        throws CreateException {
    }
    /**
     * @ejb.persistence
     *     sql-type="serial"
     *     jdbc-type="INTEGER"
    */
    public abstract Integer getId();
    /**
     * @ejb.persistence
     *     sql-type="serial"
     *     jdbc-type="INTEGER"
    */
    public abstract void setId(Integer key);
    /**
     * @ejb.persistence
     */
    public abstract String getDescription();
    /**
     * @ejb.persistence
     */
    public abstract void setDescription(String description);
    /**
     * @ejb.persistence
     */
    public abstract Date getDate();
    /**
     * @ejb.persistence
     */
    public abstract void setDate(Date date);
    /** 
     * @ejb.interface-method view-type="local"
     * @ejb.permission unchecked="true"
     */
    public abstract ScheduledEventValue getScheduledEventValue();
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#ejbActivate()
     */
    public void ejbActivate() throws EJBException, RemoteException {
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#ejbLoad()
     */
    public void ejbLoad() throws EJBException, RemoteException {
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#ejbPassivate()
     */
    public void ejbPassivate() throws EJBException, RemoteException {
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#ejbRemove()
     */
    public void ejbRemove()
        throws RemoveException, EJBException, RemoteException {
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#ejbStore()
     */
    public void ejbStore() throws EJBException, RemoteException {
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#setEntityContext(javax.ejb.EntityContext)
     */
    public void setEntityContext(EntityContext entityContext)
        throws EJBException, RemoteException {
        this.entityContext = entityContext;
    }
    /* (non-Javadoc)
     * @see javax.ejb.EntityBean#unsetEntityContext()
     */
    public void unsetEntityContext() throws EJBException, RemoteException {
        this.entityContext = null;
    }
}



Note that I am creating my DB tables myself, so I don't speak to the table generation. 
 Here is the SQL for that:


CREATE TABLE scheduled_event (id serial primary key, description varchar,Date date);


And here is the XDoclet Ant portion of my Ant script:  I replaced angle brackets with 
square

   [target name="ejbdoclet"]
      [taskdef
         name="ejbdoclet"
         classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.path"/]
         [mkdir dir=""/]  
      [ejbdoclet
         destdir=""
         excludedtags="@version,@author"
         ejbspec=""
         mergedir="/xdoclet"
         force=""
      ]
         [fileset dir=""]
            [include name="**/*Bean.java"/]
         [/fileset]
         [packageSubstitution packages="session,entity" substituteWith="interfaces"/]
         [valueobject/]
         [remoteinterface/]
         [homeinterface/]
         [localinterface/]
         [localhomeinterface/]
         [entitypk/]
         [entitybmp/]
         [entitycmp/]
         [deploymentdescriptor destdir="/META-INF"/]
         [jboss version=""
            xmlencoding="UTF-8"
            typemapping=""
            datasource=""
            destdir="/META-INF"
            validateXml="true"            
            securityDomain="java:/jaas/younglogic"
         />         
      [/ejbdoclet]
    [/target]


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

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


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to