Dúvida Conceitual sobre JPA e Hibernate![Entendido]
4 respostas
N
Nino1
Pessoal alguém poderia explicar quais as diferenças entre JPA e Hibernate… por que oq escuto falar é que JPA é uma especificação e Hibernate é a implementação… mas oq seria isso… não entendi direito como isso se agrega… como funciona… quais as vantagens…
Tb tem isso com JSF… onde JSF é a especificação e o MyFaces a implementação …
Especificação pode ser comparada a uma norma.
Ela dita as características que algo tem que atender.
A implementação é a realização daquela especificação.
É como um parafuso. Existe uma norma ESPECIFICANDO as características dele. Diferentes empresas usam estar norma para FAZER (implementar) o parafuso, respeitando as especificações obrigatórias e mudando aquilo que julga conveniente e que não altere a especificação.
N
Nino1
Hum poderia ser assim tb… quando aprendi Abstract… era isso;
Vc cria um modelo e sua extenções adotariam o modelo da forma q quisesse mas sempre seguindo aquele modelo…
Estou certo disso?
danieldestro
No caso das especificações não existe um MODELO a ser estendido… mas sim a ser implementado. (isso pode gerar uma discussão)
O teu exemplo cabe mais a HERANÇA do que Especificação/Implementação.
No caso de JPA, JEE, e outras especificações, elas são especificadas na forma de documentos e APIs (interfaces/classes).
Um exemplo seria uma especificação assim:
A ferramenta deve ser capaz de calcular o fatorial de um número e fornecer a seguinte interface de acesso:
public class Fatorial {
public int calcular( int x );
}</blockquote>
E aí você implementa como bem desejar, desde que o resultado respeite a especificação definida.
Você poderia implementar usando recursividade (um tipo de implementação), ou outra técnica (outra implementação).