EntityBean e SessionBean

1 resposta
L

Olá pessoal, estou desenvolvendo um projeto no qual um sessionbean acessa um entitybean e este acessa o banco de dados para validação do usuário, porém estou tendo dificuldades na hora do entitybean acessar o banco de dados para fazer esta validação(estou usando entitybean CMP).
Gostaria também de saber se posso usar códigos do DB2 para fazer esta verificação no banco de dados pelo entitybean.
Espero que um de vcs possa me ajudar.
Obrigada.

1 Resposta

rodrigousp

Tá tudo certo… session bean na fachada, entity bean na persistência.
É isso mesmo … Quer uma dica, faça uma aplicação bem simples de persistência com cmp.
Acho que ejb com xdoclet não é tão complicado.

Ah! Tá aqui um exemplo …

import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;

import org.apache.commons.beanutils.PropertyUtils;

/**
 * @author Rodrigo di Lorenzo Lopes
 *
 * Esta classe representa um nome 
 * 
 * @ejb.bean name="Name" 
 * 				display-name="Name: Nome" 
 * 				type="CMP" 
 * 				jndi-name="ejb/production/Name"
 * 				local-jndi-name="ejb/production/NameLocal"
 * 				view-type="both"
 * 
 * @ejb:transaction type="Required"
 * 
 * @ejb.value-object name="Name" 
 * 			extends="AbstractData"
 * 			implements="NameInterface"
 *
 * @ejb.util generate="physical"
 * 
 * @ejb.finder signature="java.util.Collection findAll()"
 * 
 * 
 * @jboss:table-name table-name="Name"
 * 
 * @jboss:create-table create="true"
 * 
 * @jboss:remove-table remove="true"
 * 
 */
public abstract class NameBean implements EntityBean, NameInterface {
	public void ejbActivate() throws EJBException, RemoteException {}
	public void ejbLoad() throws EJBException, RemoteException {}
	public void ejbPassivate() throws EJBException, RemoteException {}
	public void ejbRemove()	throws RemoveException, EJBException, RemoteException {}
	public void ejbStore() throws EJBException, RemoteException {}
	public void setEntityContext(EntityContext arg0)	throws EJBException, RemoteException {	}
	public void unsetEntityContext() throws EJBException, RemoteException {}

	/**
	 * Cria e devolve um value object contendo os dados deste bean
	 * 
	 * @ejb.interface-method view-type = "both"
	 * @ejb:transaction type="Supports"
	 */
	public NameValue getNameValue() {
		NameValue name = new NameValue();
		try {
			PropertyUtils.copyProperties(name, this);
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return name;
	}

	/**
	 * Cria um bean contendo os dados deste value object
	 * 
	 * @ejb.interface-method view-type = "both"
	 */
	public void setNameValue (NameInterface name) {
		try {
			System.out.println (name.getName());
			PropertyUtils.copyProperties(this, name);
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}	
	/**
	 * Cria um Address com base num objeto de dados
	 * 
	 * @param data A informacao do Nome
	 * 
	 * @throws InvalidValueException Se um dos valores estiver incorreto, 
	 * 									a transacao sera cancelada
	 * @throws EJBException Se nenhum ID pode ser recuperado, a transacao 
	 * 						sera cancelada
	 * @throws CreateException Especificacao
	 * 
	 * @ejb:create-method view-type="both"
	 */
	public NamePK ejbCreate(NameInterface data) {

		String id = NameUtil.generateGUID(this);
		try {
			PropertyUtils.copyProperties(this, data);
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setId (id);
		return new NamePK(id);
	}

	public void ejbPostCreate(NameValue data) {
	}

	/**
	 * Retorna o id de Address
	 * 
	 * @return Devolve uma string representando o id desta entidade
	 * 
	 * @ejb:persistent-field
	 * @ejb:pk-field
	 * @ejb:interface-method view-type="local"
	 * @ejb:transaction type="Supports"
	 * 
	 * @jboss:column-name name="ID"
	 * @jboss:jdbc-type CHAR
	 * @jboss:sql-type CHAR(32)
	 */
	public abstract String getId();

	/**
	 * Determina o id desta entidade
	 * 
	 * @ejb:interface-method view-type="local"
	 * 
	 * @param id O id desta entidade
	 */
	public abstract void setId(String id);

	/**
	 * Retorna o Nome
	 * 
	 * @return Devolve um nome
	 * 
	 * @ejb:persistent-field
	 * @ejb:interface-method view-type="local"
	 * @ejb:transaction type="Supports"
	 * 
	 * @jboss:column-name name="NAME"
	 * @jboss:jdbc-type CHAR
	 * @jboss:sql-type CHAR(50)
	 */
		
	public abstract String getName();

	/**
	 * Determina o nome
	 * 
	 * @ejb:interface-method view-type="local"
	 * 
	 * @param name é nome
	 */
	public abstract void setName(String name);
	
}

guj… conhecimento gratuito ao alcance de todos.

Criado 3 de dezembro de 2003
Ultima resposta 3 de dez. de 2003
Respostas 1
Participantes 2