Esse arquivo descreve o trabalho final da disciplina Persistência com Frameworks.
Na tabela abaixo, a nomenclatura usada para a criação das tabelas (e seus campos):
Objeto | Nomenclatura |
---|---|
Tabelas | TBL_NOMEPLURAL |
Chaves primárias | PK_ABREVIACAO_TABELA |
Chaves estrangeiras | FK_ABREVIACAO_TABELA |
Valores numéricos | NU_NOMECAMPO |
Textos | NM_NOMECAMPO |
Múltiplos Valores | ST_NOMECAMPO |
Data | DT_NOMECAMPO |
- Um produto pertence a um departamento e um departamento pode ter mais de um produto
- Um produto tem um responsável e um responsável tem apenas um produto.
- A avaliação contém um produto e um produto pode estar em mais de uma avaliação.
- A avaliação tem um autor e o autor pode ter várias avaliações.
- Uma avaliação tem um ou mais itens de avaliação.
Mapear os atributos das entidades de acordo com a nomenclatura definida.
Mapear os relacionamentos entre os objetos observando a nomenclatura definida. Todos os relacionamentos devem ser LAZY.
Mapear a hierarquia de objetos que representam os itens da avaliação.
Criar as seguintes named queries:
-
(JPQL) - Todos os Produtos
- Nome da Query: Produto.todos
-
(JPQL) - As Avaliações que possuem Issues com mais de 3 votos
- Nome da Query: Avaliacao.issuesAcima3Votos
- Evite registros duplicados
-
(JPQL) - Quantidade de débitos técnicos abertos e fechados para um determinado produto
- Nome da Query: Produto.qtdeDebitosTecnicos
- Parametro da query: idProduto
- O resultado deve ser o total associado com cada status
-
(SQL) - Qual o departamento que tem o maior número de avaliações
- Nome da Query: Departamento.maiorQtdeAvaliacoes
- O resultado deve ser a entidade.
Atenção: As queries devem ser declaradas em XML.
O que deve ser garantido:
- O nome do usuário não deve ser nulo, nem vazio.
- Nome do departamento não pode ser nulo, nem vazio.
- O departamento de produto não pode ser nulo
- O responsável pelo produto não pode ser nulo.
- Produto não pode ser nulo
- Autor não pode ser nulo
- A avaliação tem que ter pelo menos um item
- O comentário não pode nulo, nem ser vazio e deve ter no máximo 500 caracteres.
- O status não pode ser nulo.
- O custo do débito deve ser no intervalo de 1 a 5
- Garantir que a data de avaliação esteja preenchida ao inserir.
- Garantir que o status de um item que vai ser criado na avaliação esteja com o status Aberto.
- Garantir que a quantidade de votos de uma issue seja criada com 0.
git clone https://github.com/tarsobessa/jpa-trabalho-final.git
Baixar da página https://github.com/tarsobessa/jpa-trabalho-final e descompactar em disco
-
Importar no Eclipse como projeto Maven. File > Import > Existing Maven Projects
-
Fazer um Maven Update para garantir que o Eclipse aplique as configurações do pom.xml
Executar como aplicação Java usando a classe Main (br.edu.uni7.Main) disponibilizada no projeto.