1 /*2 * JBoss, the OpenSource EJB server3 *4 * Distributable under LGPL license.5 * See terms of license at gnu.org.6 */7 package org.jboss.test.foedeployer.ejb.o2mb;8 9 import javax.ejb.EntityBean ;10 import javax.ejb.EntityContext ;11 import javax.ejb.FinderException ;12 import javax.ejb.NoSuchEntityException ;13 import javax.ejb.ObjectNotFoundException ;14 import javax.ejb.RemoveException ;15 import javax.ejb.CreateException ;16 import javax.ejb.DuplicateKeyException ;17 import javax.ejb.EJBException ;18 19 import javax.sql.DataSource ;20 import javax.naming.InitialContext ;21 import javax.naming.NamingException ;22 23 import java.sql.Connection ;24 import java.sql.Statement ;25 import java.sql.ResultSet ;26 import java.sql.SQLException ;27 28 import java.util.Set ;29 30 import org.apache.log4j.Category;31 32 /**33 * Models an employee.34 *35 * @ejb.bean36 * name="Employee"37 * generate="true"38 * view-type="local"39 * type="CMP"40 * local-jndi-name="EmployeeEJB.EmployeeHome"41 * reentrant="False"42 * cmp-version="2.x"43 * primkey-field="name"44 *45 * @ejb.pk46 * class="java.lang.String"47 * generate="false"48 *49 * @ejb.transaction type="Required"50 *51 * @@ejb.finder signature="Collection findAll()"52 *53 * @@ejb.persistence table-name="employee"54 * @weblogic:table-name employee55 *56 * @jboss.create-table "${jboss.create.table}"57 * @jboss.remove-table "${jboss.remove.table}"58 *59 * @author <a HREF="mailto:loubyansky@ua.fm">Alex Loubyansky</a>60 */61 public abstract class EmployeeBean62 implements EntityBean 63 {64 // Constants -----------------------------------------------------65 static Category log = Category.getInstance( EmployeeBean.class );66 67 // Attributes ----------------------------------------------------68 private EntityContext ctx;69 70 // CMP71 72 /**73 * Employee's name: primary key field74 *75 * @ejb.pk-field76 * @ejb.persistent-field77 * @ejb.interface-method78 *79 * xdoclet needs to be updated80 * @@ejb.persistence81 * column-name="name"82 * jdbc-type="VARCHAR"83 * sql-type="VARCHAR(50)"84 *85 * @weblogic:dbms-column name86 */87 public abstract String getName();88 public abstract void setName(String name);89 90 91 // CMR92 93 /**94 * Company: bidirectional CMR95 *96 * @ejb.interface-method97 *98 * @ejb.relation99 * name="Company-Employee"100 * role-name="Employee-Has-Company"101 * cascade-delete="yes"102 *103 * @jboss.relation104 * fk-constraint="false"105 * related-pk-field="name"106 * pk-column="company_name"107 */108 public abstract CompanyLocal getCompany();109 /**110 * @ejb.interface-method111 */112 public abstract void setCompany(CompanyLocal company);113 114 // EntityBean Implementation -------------------------------------115 /**116 * @ejb.create-method117 */118 public String ejbCreate( String name )119 throws CreateException 120 {121 setName(name);122 return null; // See 9.4.2 of the EJB 1.1 specification123 }124 125 public void ejbPostCreate( String name ) { }126 127 public void ejbRemove()128 throws RemoveException 129 {130 log.debug("removed: " + ctx.getPrimaryKey() );131 }132 133 public void setEntityContext(EntityContext ctx)134 {135 this.ctx = ctx;136 }137 138 public void unsetEntityContext()139 {140 ctx = null;141 }142 143 public void ejbActivate() { }144 public void ejbPassivate() { }145 public void ejbLoad() { }146 public void ejbStore() { }147 }148