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 a company.34 *35 * @ejb.bean36 * name="Company"37 * generate="true"38 * view-type="local"39 * type="CMP"40 * local-jndi-name="CompanyEJB.CompanyHome"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.finder signature="Collection findAll()"50 *51 * @ejb.transaction type="Required"52 *53 * @@ejb.persistence table-name="company"54 * @weblogic:table-name company55 *56 * @jboss.create-table "${jboss.create.table}"57 * @jboss.remove-table "${jboss.remove.table}"58 *59 * @author <a HREF="mailto:loubyansky@hotmail.com">Alex Loubyansky</a>60 */61 public abstract class CompanyBean62 implements EntityBean 63 {64 // Constants -----------------------------------------------------65 static Category log = Category.getInstance( CompanyBean.class );66 67 // Attributes ----------------------------------------------------68 private EntityContext ctx;69 70 // CMP71 /**72 * Company's name: primary key field73 *74 * @ejb.pk-field75 * @ejb.persistent-field76 * @ejb.interface-method77 *78 * xdoclet needs to be updated79 * @@ejb.persistence80 * column-name="name"81 * jdbc-type="VARCHAR"82 * sql-type="VARCHAR(50)"83 *84 * @weblogic:dbms-column name85 */86 public abstract String getName();87 public abstract void setName(String name);88 89 90 // CMR91 92 /**93 * Employees: bidirectional CMR94 *95 * @ejb.relation96 * name="Company-Employee"97 * role-name="Company-Has-Employees"98 * @ejb.interface-method99 *100 * @weblogic.column-map101 * foreign-key-column="company_name"102 * key-column="name"103 */104 public abstract Set getEmployees();105 /**106 * @ejb.interface-method107 */108 public abstract void setEmployees(Set employees);109 110 // EntityBean Implementation -------------------------------------111 /**112 * @ejb.create-method113 */114 public String ejbCreate( String name )115 throws CreateException 116 {117 setName(name);118 return null; // See 9.4.2 of the EJB 1.1 specification119 }120 121 public void ejbPostCreate( String name ) { }122 123 public void ejbRemove()124 throws RemoveException 125 {126 log.debug( "removed: " + ctx.getPrimaryKey() );127 }128 129 public void setEntityContext(EntityContext ctx)130 {131 this.ctx = ctx;132 }133 134 public void unsetEntityContext()135 {136 ctx = null;137 }138 139 public void ejbActivate() { }140 public void ejbPassivate() { }141 public void ejbLoad() { } 142 public void ejbStore() { }143 }144