No Hibernate, caso o nome da classe seja diferente do nome ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C (certo)
O Hibernate é um dos frameworks de persistência mais populares no ecossistema Java, e ele facilita a interação entre o nosso código Java e os bancos de dados relacionais através do que chamamos de ORM (Object-Relational Mapping). O mapeamento objeto-relacional é uma técnica que permite que as tabelas do banco de dados sejam representadas como classes em Java, e as linhas dessas tabelas como instâncias dessas classes.
Quando estamos trabalhando com Hibernate, as anotações são frequentemente utilizadas para definir como esse mapeamento deve ser feito. Uma delas é a @Table, que especifica a tabela que está sendo mapeada para a entidade. Se o nome da tabela no banco de dados for diferente do nome da classe em Java, deveremos utilizar o atributo name dentro da anotação @Table para explicar ao Hibernate o nome correto da tabela. Por exemplo:
@Entity
@Table(name="nome_da_tabela")
public class NomeDaClasse {
// ...
}
Nesse exemplo, a anotação @Table(name="nome_da_tabela") indica que a classe NomeDaClasse deve ser mapeada para a tabela chamada "nome_da_tabela" no banco de dados. Isso é necessário para garantir que o Hibernate possa realizar as operações de banco de dados corretamente, associando a classe com a tabela apropriada.
Portanto, a afirmação da questão está correta porque destaca uma regra importante do mapeamento objeto-relacional feito pelo Hibernate: a necessidade de explicitar o nome da tabela quando este não coincide com o nome da classe.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Só tomem cuidado:
Considerando que hibernate é uma implementação de JPA, a annotação @Entity(name="NomeTabela") também é válida, portanto a anotação @Table não é necessária
@Table vs @Entity
@Table is optional@Entity is needed for annotating a POJO class as an entity, but the name attribute is not mandatory.
----------------------------------------------------------------------
If you have a class
@Entity
class MyEntity {}
A table with name "MyEntity" will be created and the Entity name will be MyEntity.
----------------------------------------------------------------------
@Entity(name="NewName")
class MyEntity {}A table with name "NewName" will be created and the Entity name will be MyEntity.
if you have a class
----------------------------------------------------------------------
@Table(name="MyEntityTableName")
class MyEntity {}
then a table with name MyEntityTableName is created and the entity name is MyEntityName.
http://stackoverflow.com/questions/7259273/whats-the-difference-between-the-name-argument-in-entity-and-table-when-usinghttps://www.quora.com/What-is-the-difference-between-Entity-name-Emp-and-Table-name-Emp-in-Hibernate
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo