Entitys Beans, ManagedBeans e Modelagem

0 respostas
P

Bom dia, estou com uma duvida e gostaria da opnião de vocês. É correto declarar métodos de negocio como save(), remove(), cadastra()… em uma entidade ? Quando digo entidade falo de um Entity Bean mesmo com suporte a JPA e mapeado com annotations ou xml.

Por exemplo:

@Entity
class Pessoa {
 @Id
 long id;
 String name;

 public long save() {
  ...
  session = ... //Obtem sessão do Hibernate.
  long id = session.save(this);
  ...
  return id;
 }
}

Claro eu poderia usar DAO tambem ex: PessoaDAO e declarar um metodo save(Pessoa pessoa);

Dizem que isso é o aconselhavel, gostaria de saber porque.

Poderia também dentro do método save() na classe pessoa usar o dao:

public long save() {
   ...
  long id = pessoaDao.save()
  ...
  return id;
}

Bom no caso de estiver usando JSF voce não pode passar parametros para o método de um command, então nao tem como usar a alternativa do DAO.

Eu poderia usar este método no entity beans ??? ou o mais correto seria criar um Managed Bean PessoaMBean ?
Ex:

class PessoaMBean {
  Pessoa pessoa;
 
  public String save {
  ...
  long id = pessoaDao.save()
  ...
  return "success";
 }
}

É claro que eu preciso alterar o return value p/ String conforme as normas do JSF.

Também se faz necessário mapear uma no faces-config.xml p/ o attributo pessoa.

Bom é isso, quailquer opnião ou esclarecimento é bem vindo. Obrigado.

Criado 23 de março de 2007
Respostas 0
Participantes 1