[Resolvido] Criar camada DAO numa aplicação Seam

0 respostas
S
Pessoal, to tentando criar uma classe ClienteDAO
@Name("clientDAO")
public class ClientDAO {

	public ClientDAO() {}
	
	@In
	private EntityManager entityManager;	
	
	@Out(required=false)
	private List<Client> clients;
	
	@SuppressWarnings("unchecked")
	public List<Client> listClientDAO() {
		clients = entityManager.createQuery("select c from Client c ").getResultList();
		
		return clients;
	}
	
	// get's e set's
}
e injeta-la na classe ClienteAction
@Name("clientAction")
public class ClientAction {

	@In
	private EntityManager entityManager;
	
	@DataModel
	private List<Client> clients;
	
	@In private ClientDAO clientDAO; // injetando ClientDAO
	
	public void listClients() {		
		clients = clientDAO.listClientDAO();		
	}
	// get's e set's
}
só que não funciona!! aparentemente, a aplicação não "enxerga" a classe DAO, no log do servidor vejo que nem foi inicializada!! se eu utilizar @Startup no DAO, ela inicializa, só que não faz mais nada além de listar, se eu inserir um novo registro nem é atualizado na lista, só que reestarto o servidor

Teria que fazer alguma configuração à parte pra fazer isso funcionar?

Valeu!!!

--------------------------------------------------------------------------------------------------------------------------------------------------

EDIT: Resolvi o problema usando a anotação @AutoCreate na classe ClienteDAO.
Outra coisa, o atributo private List clients na classe DAO tem que estar anotado como @DataModel, porque na classe Action está assim também.

Criado 16 de março de 2010
Respostas 0
Participantes 1