Tag Archive: jpa 2


CRUD JSF 2 + JPA 2 – Parte 4 – Final

 

Chegamos ao ponto final do nosso CRUD, neste post iremos criar os managedbeans e as outras classes que faltam.

Vamos lá?

No pacote managedbeans vamos criar uma classe com o nome de DvdBean, ela possui a seguinte estrutura:

@ManagedBean
public class DvdBean {
	@ManagedProperty(value="#{entityManager}")
	private EntityManager entityManager;
	
	private DVD dvd = new DVD();
	private List<DVD> dvds;
	private Long generoID;
	
	public void save() {
		GeneroRepository generoRepository = new GeneroRepository(this.entityManager);
		Genero genero = generoRepository.search(generoID);
		this.dvd.setGenero(genero);
		
		DvdRepository dvdRepository = new DvdRepository(this.entityManager);
		dvdRepository.save(this.dvd);
		
		this.dvd = new DVD();
		this.dvds = null;
	}
	
	public void remove(DVD dvd) {
		DvdRepository repository = new DvdRepository(this.entityManager);
		repository.remove(dvd);
		
		this.dvds = null;
	}
	
	public List<DVD> getDvds() {
		if(this.dvds == null){
			DvdRepository repository = new DvdRepository(this.entityManager);
			this.dvds = repository.getDVDs();
		}
		
		return this.dvds;
	}
	
	public Long getCount() {
		DvdRepository repository = new DvdRepository(this.entityManager);
		
		return repository.getCountDVDs();
	}

	// get e set para dvd e generoID

	public void setEntityManager(EntityManager entityManager) {
		this.entityManager = entityManager;
	}
}

Continue lendo

CRUD JSF 2 + JPA 2 – Parte 3

 
Dando sequencia no CRUD, neste post iremos criar os repositórios e o front-end do nosso sistema como já mencionado no post anterior.

Vamos lá?

Em nosso sistema, adotamos o padrão Open Session in View ( padrão explicado no post anterior, clique aqui para ver ) e o gerenciamento das transações não é mais tarefa dos repositórios, porém o funcionamento deles ainda é afetado pelo contorle de transações.

Os repositórios precisam de Entity Managers para realizar as operações de persistência. Então, cada repositório terá um construtor para receber um Entity Manager como parâmetro.

Crie uma classe chamada DvdRepository dentro do pacote repository com a seguinte estrutura:

public class DvdRepository {
	private EntityManager entityManager;

	public DvdRepository(EntityManager entityManager) {
		this.entityManager = entityManager;
	}

	public void save(DVD dvd) {
		this.entityManager.persist(dvd);
		this.entityManager.flush();
	}

	public void remove(DVD dvd) {
		this.entityManager.remove(dvd);
	}

	@SuppressWarnings("unchecked")
	public List getDVDs() {
		return this.entityManager.createNamedQuery("DVD.findAll")
				.getResultList();
	}

	public Long getCountDVDs() {
		return (Long) this.entityManager.createNamedQuery("DVD.count")
				.getSingleResult();
	}
}

Continue lendo

CRUD JSF 2 + JPA 2 – Parte 2

 
Dando continuidade ao CRUD, no post anterior vimos os requisitos do sistema exemplo e já montamos nosso banco de dados, reforçando: Estarei utilizando a IDE Eclipse, banco de dados MySQL e servidor de aplicação Tomcat 7.

Vamos agora criar um novo Dynamic Web Project e dar um nome, no meu caso eu dei o nome de Locadora, este projeto irá ser JSF 2.0, caso queira, pode utilizar as bibliotecas que o Eclipse oferece, veja:

Continue lendo

CRUD JSF 2 + JPA 2 – Parte 1

Fala pessoal, blzz?

Vamos dar sequencia aqui aos postos do blog programandojava, a partir de hoje estarei fazendo alguns posts referente a um CRUD (Create, Read, Update e Delete) utilizando JSF 2.0 + JPA 2.0.

Neste primeiro post iremos ver apenas os requisitos do sistema exemplo e o script para geração do banco de dados.

Temos os seguintes requisitos para nosso sistema:

“Desenvolver uma aplicação Web utilizando Java que permita o cadastro e controle de DVDs. Um DVD é composto por um identificador (utilizado internamente no sistema), um titulo, um preço, um ano, uma faixa etária e um Gênero. O titulo do DVD não deve ter mais que 20 caracteres. Um Gênero deve ser composto também por um identificador, um nome (máximo 20 caracteres). Todos os atributos de DVD Gênero são obrigatórios. Para cada uma das entidades, desenvolva um formulário de cadastro e manutenção onde todos os dados devem ser apresentados em uma tabela.”

Continue lendo