Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aula 4 - Dúvida sobre o mapeamento no persistence.xml

No final da Aula 4 há 4 classes criadas no pacote modelo: Categoria, Cliente, Movimentacao e Conta e todas elas são entidades (têm o @Entity).

No entanto, no arquivo persistence.xml no final dessa aula, as únicas entidades que estão declaradas como entidades mapeadas são a Conta e a Movimentacao. Veja o persistence.xml abaixo:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
     <persistence-unit name="alura">
       <!-- provedor/implementacao do JPA -->
       <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
       <!-- entidades mapeadas -->
       <class>br.com.caelum.tarefas.modelo.Conta</class>
       <class>br.com.caelum.tarefas.modelo.Movimentacao</class>    
       <properties>       
            <!-- dados da conexao -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/alura_jpa?serverTimezone=UTC" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="JovemNerd#007" />        
            <!--  propriedades do hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />        
            <!--  atualiza o banco, gera as tabelas se for preciso -->
            <property name="hibernate.hbm2ddl.auto" value="update" />    
       </properties>       
    </persistence-unit>    
</persistence>

Por qual motivo as entidades Cliente e Categoria não foram declaradas no persistence.xml na aula?

1 resposta
solução!

Nas versões mais recentes do JPA não é necessário mapear as entidades no persistence.xml, a implementação do JPA consegue através de reflection percorrer todos os arquivos anotados com @Entity e executar os scripts necessários para poder criar as tabelas.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software