Você está aqui: Java ::: Java Persistence Architecture API (JPA) - Arquitetura de Persistência Java ::: Entidades (Entity, Entities)

O que são entidades no JPA?

Quantidade de visualizações: 13303 vezes
Uma entidade em JPA é um objeto de domínio leve e de persistência. Por objeto de domínio entendemos os objetos de classes que pertencem ao domínio da aplicação (por exempo, as regras de negócios). Por leve entendemos que o custo de construir instâncias e manipular tais objetos é muito baixo, se comparado com algumas características de EJB e JEE. Finalmente entendemos que um objeto de persistência é um objeto que tem seus valores recuperados e/ou enviados (persistidos) a um banco de dados.

Geralmente uma entidade JPA representa uma tabela em um banco de dados relacional e cada instância desta entidade representa uma linha (registro ou tupla) na tabela. A base de uma entidade é a classe de entidade, embora entidades podem usar classes auxiliares (helper classes).

Uma classe de entidade JPA é tão simples quanto um POJO (Plain Old Java Objects). Isso quer dizer que qualquer classe Java pode ser uma entidade JPA. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import javax.persistence.*;

@Entity
@Table(name="usuarios")
public class Usuario{
  @Id
  @GeneratedValue(strategy=GenerationType.IDENTITY)
  private int id;
  private String nome;
  
  public Usuario(){}

  public Usuario(int id){ 
    this.id = id; 
  }

  public int getId(){ 
    return id; 
  }

  public void setId(int id){
    this.id = id;
  }

  public String getNome(){
    return nome; 
  }

  public void setNome(String nome){ 
    this.nome = nome; 
  }
}

Note que antes da definição do nome desta classe nós temos duas anotações (annotation): a primeira usa javax.persistence.Entity para informar que esta classe é uma entidade. A segunda usa javax.persistence.Table para informar o nome da tabela para a qual a entidade será mapeada. Se não usássemos esta última anotação, a entidade seria mapeada para uma tabela chamada USUARIO.

Note que esta classe possui duas variáveis persistentes: id e nome. Consequentemente a tabela no banco de dados terá duas colunas como estes mesmos nomes.

O restante da classe se parece com um JavaBean, com seus métodos get e set. Há ainda as anotações que definem a propriedade a ser usada como chave primária da entidade e como os valores de tal chave serão gerados. Nas dicas sobre JPA você obtém mais detalhes sobre isso.

Para que uma classe Java possa ser usada como uma entidade JPA, ela deve obedecer a algumas regras:

a) - A classe deve ser anotada com a anotação javax.persistence.Entity;

b) - A classe deve ter um construtor sem argumento public ou protected. Outros construtores podem ser adicionados, contanto que um sem argumento seja fornecido.

c) - A classe não deve ser declarada como final. Nenhum dos métodos ou variáveis (persistentes) de instâncias devem ser declarados como final.

d) - Se uma instância de uma entidade for passada por valor como um objeto isolado, por exemplo, através da interface remota de um bean de sessão, a classe deverá implementar a interface Serializable.

e) - Entidades podem extender classes entidades e não-entidades. E classes não-entidades podem extender classes entidades.

e) - Variáveis persistentes de instâncias devem ser declaradas private, protected ou de pacote e devem ser acessadas somente pelos métodos da classe de entidade. Clientes de uma classe entidade devem acessar seu estado somente por meio de métodos get e set.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Classes e Componentes ::: JTable

Java Swing - Como excluir linhas de uma JTable em tempo de execução usando o método removeRow() da classe DefaultTableModel

Quantidade de visualizações: 15777 vezes
Nesta dica mostrarei como é possível excluir uma determinada linha de uma JTable usando o método removeRow() da classe DefaultTableModel. Veja que mostro também como inserir novas linhas na JTable usando o método insertRow().

Veja o resultado obtido na imagem abaixo:



E agora o código Java Swing completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    final DefaultTableModel modelo = new DefaultTableModel();
     
    // constrói a tabela
    JTable tabela = new JTable(modelo);
     
    // Cria duas colunas
    modelo.addColumn("Nome");
    modelo.addColumn("Idade");
     
    JButton btn = new JButton("Inserir Linhas");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          String nome = JOptionPane.showInputDialog(null, "Informe o nome:");
          String idade = JOptionPane.showInputDialog(null, "Informe a idade:");
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
             "Informe a posição da nova linha:"));
           
          // testa se a posição é válida
          if(pos > (modelo.getRowCount() - 1))
            pos = 0;
           
          // Insere uma linha na posição especificada
          modelo.insertRow(pos, new Object[]{nome, idade});
        }
      } 
    );
     
    JButton btn2 = new JButton("Excluir Linhas");
    btn2.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
            "Informe a posição da linha a ser excluída:"));
           
          // testa se a posição é válida
          if(pos < modelo.getRowCount())
            // Exclui a linha na posição especificada
            modelo.removeRow(pos);
        }
      } 
    );  
     
    tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
    c.add(btn);
    c.add(btn2);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Dicas & Truques ::: Mouse e Teclado

Como ligar ou desligar a tecla Caps Lock do seu teclado usando Java

Quantidade de visualizações: 17948 vezes
Nesta dica mostrarei como ligar ou desligar a tecla Caps Lock (tudo maiúsculo) do seu teclado usando o método setLockingKeyState() da classe Toolkit, do pacote java.awt. Note que passei o valor true para ligar o Caps Lock e false para desligar.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
 
import java.awt.Toolkit;
import java.awt.event.*;
 
public class Estudos{
  public static void main(String[] args){
    Toolkit tk = Toolkit.getDefaultToolkit();    
     
    // Liga a tecla Caps Lock
    tk.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
     
    // Para desligar basta usar:
    // tk.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);    
 
    System.exit(0);
  }
}

Esta dica foi testada no Java 8 e Windows 10.


Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Tratamento de erros em Java - Como tratar o erro ArrayIndexOutOfBoundsException em Java

Quantidade de visualizações: 18092 vezes
A exceção ArrayIndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor ou matriz (array). Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1.

Antes de vermos os exemplos, observe a posição da classe pública ArrayIndexOutOfBoundsException na hierarquia de classes da plataforma Java:

java.lang.Object
  java.lang.Throwable
    java.lang.Exception
      java.lang.RuntimeException
        java.lang.IndexOutOfBoundsException
          java.lang.ArrayIndexOutOfBoundsException


Esta classe implementa a interface Serializable.

Veja um exemplo no qual tentamos acessar um elemento de um vetor ou matriz usando um índice inválido:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    // um array de quatro elementos
    int[] valores = {5, 23, 76, 3};     

    // vamos fornecer um índice inválido
    System.out.println(valores[4]); 

    System.exit(0);
  }
}

Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro:

Exception in thread "main" 
java.lang.ArrayIndexOutOfBoundsException: 4
  at Estudos.main(Estudos.java:7)


A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 80 usuários muito felizes estudando em nosso site.