ProjectBean.java |
/* * JBoss, the OpenSource EJB server * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.test.foedeployer.ejb.m2mb; import javax.ejb.EntityBean; import javax.ejb.EntityContext; import javax.ejb.FinderException; import javax.ejb.NoSuchEntityException; import javax.ejb.ObjectNotFoundException; import javax.ejb.RemoveException; import javax.ejb.CreateException; import javax.ejb.DuplicateKeyException; import javax.ejb.EJBException; import javax.sql.DataSource; import javax.naming.InitialContext; import javax.naming.NamingException; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; import org.apache.log4j.Category; /** * Models a project. * * @ejb.bean * name="Project" * generate="true" * view-type="local" * type="CMP" * local-jndi-name="ProjectEJB.ProjectHome" * reentrant="False" * cmp-version="2.x" * primkey-field="name" * * @ejb.pk * class="java.lang.String" * generate="false" * * @@ejb.finder signature="Collection findAll()" * * @ejb.transaction type="Required" * * @@ejb.persistence table-name="project" * @weblogic:table-name project * * @jboss.create-table "${jboss.create.table}" * @jboss.remove-table "${jboss.remove.table}" * * @author <a href="mailto:aloubyansky@hotmail.com">Alex Loubyansky</a> */ public abstract class ProjectBean implements EntityBean { // Constants ----------------------------------------------------- static Category log = Category.getInstance( ProjectBean.class ); // Attributes ---------------------------------------------------- private EntityContext ctx; // CMP /** * Project name: primary key field * * @ejb.pk-field * @ejb.persistent-field * @ejb.interface-method * * xdoclet needs update * @@ejb.persistence * column-name="name" * jdbc-type="VARCHAR" * sql-type="VARCHAR(50)" * * @weblogic:dbms-column name */ public abstract String getName(); public abstract void setName(String name); // CMR /** * Developers: m2m bidirectional CMR * * @ejb.interface-method * * @ejb.relation * name="Developer-Project" * role-name="Project-Has-Developers" * * @jboss.relation-table * table-name="developer_project" * create-table="${jboss.create.table}" * remove-table="${jboss.remove.table}" * @jboss.relation * fk-contraint="false" * related-pk-field="name" * fk-column="developer" * * @weblogic.relation join-table-name="developer_project" * @weblogic.column-map * foreign-key-column="project" * key-column="name" */ public abstract Collection getDevelopers(); /** * @ejb.interface-method */ public abstract void setDevelopers(Collection developer); // EntityBean Implementation ------------------------------------- /** * @ejb.create-method */ public String ejbCreate( String name ) throws CreateException { setName(name); return null; // See 9.4.2 of the EJB 1.1 specification } public void ejbPostCreate( String name ) { } public void ejbRemove() throws RemoveException { log.debug("removed: " + ctx.getPrimaryKey() ); } public void setEntityContext(EntityContext ctx) { this.ctx = ctx; } public void unsetEntityContext() { ctx = null; } public void ejbActivate() { } public void ejbPassivate() { } public void ejbLoad() { } public void ejbStore() { } }
ProjectBean.java |