A linguagem Java possui diferentes APIs para persistência de dados. Quando utilizamos JPA, é preciso definir de forma correta as anotações para que os dados sejam gravados e recuperados corretamente.
Considerando o texto acima, avalie as afirmações abaixo.
I – A anotação @Entity define que o atributo marcado com a anotação será um identificador de entidade, sendo seu valor gerado e incrementado automaticamente.
II – A anotação @Table define em qual tabela os dados da classe serão armazenados, mas só precisa ser utilizada se o nome da classe for diferente do nome da tabela.
III – A anotação @Column é utilizada para atributos, para definir quais atributos representam colunas da tabela no banco de dados.
IV – A anotação @Primary define um atributo como chave primária na tabela do banco de dados.
É correto o que se afirma em:
Alternativas
Alternativa 1:
I e II, apenas.
Alternativa 2:
II e III, apenas.
Alternativa 3:
III e IV, apenas.
Alternativa 4:
I, II e III, apenas.
Alternativa 5:
II, III e IV, apenas.
Respostas
I – A anotação @Entity define que o atributo marcado com a anotação será um identificador de entidade, sendo seu valor gerado e incrementado automaticamente.
Falso. @Entity serve para dizer que uma classe é uma entidade que será manipulada pelo JPA.
II – A anotação @Table define em qual tabela os dados da classe serão armazenados, mas só precisa ser utilizada se o nome da classe for diferente do nome da tabela.
Verdadeiro.
III – A anotação @Column é utilizada para atributos, para definir quais atributos representam colunas da tabela no banco de dados.
Verdadeiro.
IV – A anotação @Primary define um atributo como chave primária na tabela do banco de dados.
Falso. @Primary não existe no JPA. A anotação que representa essa funcionalidade é a @Id.
Logo, a alternativa correta é a 2: II e III, apenas.
Resposta:
Alternativa 2: II e III, apenas.
Explicação:
I – A anotação @Entity define que o atributo marcado com a anotação será um identificador de entidade, sendo seu valor gerado e incrementado automaticamente. (FALSA)
R: @Entity – define que a classe em questão é uma entidade a ser persistida em uma tabela no banco de dados. Caso esta tabela não exista o JPA cria ela para você.
II – A anotação @Table define em qual tabela os dados da classe serão armazenados, mas só precisa ser utilizada se o nome da classe for diferente do nome da tabela. (VERDADEIRA)
R: @Table – quando anotada na classe, define o nome da tabela do banco de dados que a entidade representa. Se você não anotar a classe com @Table(name=”nome_tabela”) o JPA irá definir o nome da tabela com o nome da classe.
III – A anotação @Column é utilizada para atributos, para definir quais atributos representam colunas da tabela no banco de dados. (VERDADEIRA)
R: @Column – define quais atributos da classe representam colunas de uma tabela.
IV – A anotação @Primary define um atributo como chave primária na tabela do banco de dados. (FALSA)
R: @Id – define qual atributo da classe representa uma chave primária no banco de dados.