Fórum Como o JPA gera as tabelas no banco? #564335
20/10/2016
0
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
Curtir tópico
+ 0
Responder
Posts
20/10/2016
Jones Granatyr
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
Responder
Gostei + 0
20/10/2016
Angelo Santos
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 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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)