Você está na página 1de 5

Criando o EJB com a lógica de cadastro de Produto

1. Crie uma classe de entidade com o nome Produto (em


com.acme.modelo.Produto). Adicione os campos abaixo:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nome;
private String descricao;
private Float preco;
@ManyToOne
private Fabricante fabricante;
@ManyToOne
private Categoria categoria;

2. Adicione os métodos get e set para os novos campos.

Observe que a anotação @Id e @GeneratedValue foi movida do método


getId para a declaração da propriedade Long id.

Notar também as notações @ManyToOne nos campos fabricante e


categoria. Estas anotações criam uma referencia de Produto para
Categoria e Fabricante.

3. Crie um EJB usando a opção “Beans de Sessão para classe de


entidade”. Na janela para escolha da classe de entidade, desmarque
a opção “Incluir classes referenciadas”, selecione a classe Produto e
adicione ao quadro “Classes de entidade selecionada”. Clique em
“Finalizar”.
Criando o caso de uso Cadastro de Produto
1. Crie um Managed Session bean para Produtos (ProdutoSessionBean) e
crie duas propriedades:

Produto[] produtos;

Produto produto;

Crie também seus métodos get e set.

2. Crie a página ProdutoIndex como foi feito nos cadastros anteriores.

3. Vincule a propriedade produtos de ProdutoSessionBean a tabela na


página, tendo o cuidado de retirar os campos “categoria” e
“fabricante” da lista de campos selecionados.

4. Clique novamente na tabela com o botão direito e selecione “Layout


da Tabela”. Adicione o campo categoria à lista de campos
selecionados e altere o valor do campo “Expressão de valor”
conforme abaixo:

Isso fará com que na coluna de categoria seja mostrado o nome da


categoria(lembre-se que a propriedade categoria de Produto contem
um objeto da classe Categoria). Faça o mesmo para o campo
fabricante.

5. Como nos tutoriais anteriores adicione os botões Editar e Remover à


tabela.
Criando o caso de uso Novo Produto
1. Crie uma nova página visual para o caso de uso “Novo Produto” e dê
o nome ProdutoNew.

2. Adicione as rotas de ProdutoIndex para PodutoNew e vice-versa

3. Monte a página como a seguir:

Observe os os dois combo-box, um para Categoria e outro para


Fabricante. Estes combos permitirão escolhermos a categoria e o
fabricante do produto.

4. Adicione as referencias para os três EJBs criados (FabricanteFacade,


CategoriaFacade e ProdutoFacade) usando a opção “Recursos
Corporativos  Chamar Enterprise Bean”.

5. Procure o método “init” dentro do código de ProdutoNew e adicione


ao final dele o código para inicialização para os dois combos como
abaixo:

public void init() {


...
// </editor-fold>
// Perform application initialization that must complete
// *after* managed components are initialized
// TODO - add your own initialization code here
List<Categoria> cats= categoriaFacade.findAll();
Option[] optsCategorias= new Option[cats.size()];
int i=0;
for (Categoria c:cats) {
optsCategorias[i++]= new Option(c.getId(),c.getNome());
}
dropDown1DefaultOptions.setOptions(optsCategorias);
List<Fabricante> fabs= fabricanteFacade.findAll();
Option[] optsFabricantes= new Option[fabs.size()];
int j=0;
for (Fabricante f:fabs) {
optsFabricantes[j++]= new Option(f.getId(),f.getNome());
}
dropDown2DefaultOptions.setOptions(optsFabricantes);
}

6. Adicione uma propriedade “produto” para armazernar o novo produto,


crie os métodos get e set, e inicialize esta variável em “preprocess()”.

7. Dê um duplo clique sobre o botão “Salvar” e adicione o código a


seguir:

public String button1_action() {


Long catid=Long.parseLong(dropDown1.getSelected().toString());
Long fabid=Long.parseLong(dropDown2.getSelected().toString());
Categoria categoriaSelecionada =
(Categoria) categoriaFacade.find(catid);
Fabricante fabricanteSelecionado =
(Fabricante) fabricanteFacade.find(fabid);
produto.setCategoria(categoriaSelecionada);
produto.setFabricante(fabricanteSelecionado);
produtoFacade.create(produto);
return "produto_index";
}

Observe que os objetos categoriaSelecionada e fabricanteSelecionada


são obtidos dos ids selecionados nos objetos dropDown do JSF e
atribuídos ao objeto produto.

8. Execute o aplicativo

Você também pode gostar