Olá Ismael, tudo bem com você?
Por padrão, o Hibernate já procura automaticamente pelas classes marcadas com a anotação @Entity e já as mapeia como entidades JPA. Portanto, nesse caso em específico, não é necessário declará-las no persistence.xml.
A motivação por trás do uso da tag <class>
está na garantia de que mesmo trocando de implementação, a unidade de persistência irá encontrar e mapear as classes especificadas dentro das tags <class>
.
Uma abordagem muito utilizada quando temos mais de uma unidade de persistência é usar a tag <exclude-unlisted-classes>
para ignorar qualquer classe que não esteja definida na tag <class>
, mapeando apenas as entidades que queremos utilizar naquele contexto.
Então, basicamente, só não mapeamos todas as entidades no persistence.xml pois Hibernate já realizou essa tarefa no nosso lugar. Embora nem todas as implementações façam isso por nós!
Espero ter esclarecido o funcionamento da tag <class>
no persistence.xml. Se ficou alguma dúvida é só avisar!
Abraços e bons estudos!!