Como o JPA gera as tabelas no banco?

Java

20/10/2016

Como o JPA faz a criação das tabelas no banco de dados através das classes e dos atributos criados ? O que permite essa ligação entre aplicação e o Banco de da Dados?
Wellington

Wellington

Curtidas 0

Respostas

Jones Granatyr

Jones Granatyr

20/10/2016

Opa! Exatamente, ele faz o mapeamento objeto-relacional, ou seja, transforma a estrutura das classes em tabelas no BD. Para decidir que tipo de relacionamento fazer (1-N, 1-1 ou N-N), ele usa o relacionamento entre os próprios objetos
GOSTEI 0
Angelo Santos

Angelo Santos

20/10/2016

Olá, Wellington

Depende da implementação que você vai utilizar. Se você utilizar Hibernate o mapeamento objeto-relacionamento pode ser feito através de Annotations (em versões mais antigas era feito através de XML). Segue abaixo um exemplo de uma classe mapeada para uma entidade no banco:

@Entity(name="db_tarefa")
public class Tarefa {

  @Id
  @GeneratedValue
  private Long id;

  private String descricao;

  @Temporal(TemporalType.DATE)
  private Calendar dataInicio;

  // métodos...
}


@Entity indica que objetos dessa classe se tornem "persistível" no banco de dados.
@Id indica que o atributo id é nossa chave primária
@GeneratedValue diz que queremos que esta chave seja populada pelo banco.
@Temporal configura como mapear um Calendar para o banco, no exemplo foi utilizado apenas a data (sem hora), mas poderia ser utilizado apenas a hora (TemporalType.TIME) ou timestamp (TemporalType.TIMESTAMP).

Existe também @Column, que você configura o nome das colunas para tabela. No exemplo como as variáveis não foram anotadas com @Column as colunas na tabela será criada com o mesmo nome da variável.

Essas anotações precisam dos devidos imports, e pertencem ao pacote javax.persistence.

Caso queira aprofundar mias no assunto, aqui na Devmedia existem ótimos cursos e artigos,

Espero ter ajudado.
GOSTEI 0
POSTAR