Imagem de fundo

A Java Persistence API (JPA) é uma especificação do Jakarta EE (anteriormente Java EE) ...

A Java Persistence API (JPA) é uma especificação do Jakarta EE (anteriormente Java EE) que define um modelo padrão para o mapeamento objeto-relacional (ORM) em aplicações Java.

Por meio de anotações como @Entity, @Table, @Id e @OneToMany, a JPA permite que o desenvolvedor manipule registros do banco de dados como objetos Java, abstraindo grande parte da complexidade do SQL e delegando a implementação concreta a providers como Hibernate, EclipseLink e OpenJPA.


Considere o seguinte trecho de código utilizando JPA:


Imagem associada para resolução da questão


Sobre o código apresentado, considerando as especificações da JPA e o comportamento padrão dos providers de persistência, assinale a afirmativa correta.


A

A anotação @GeneratedValue(strategy = GenerationType.IDENTITY) indica que o valor da chave primária será gerado automaticamente pelo banco de dados por meio de uma coluna auto-incremento, cabendo ao próprio banco — e não à aplicação — atribuir o valor do id no momento da inserção.


B

A anotação @Column(nullable = false) é responsável por criar, em tempo de execução, uma validação no nível da aplicação Java que lança uma exceção antes de qualquer interação com o banco de dados, tornando desnecessária a definição da constraint NOT NULL na coluna correspondente da tabela.


C

A estratégia FetchType.LAZY no relacionamento @OneToMany faz com que a lista de pedidos seja carregada integralmente junto com a entidade Cliente no momento da consulta inicial, antecipando todos os dados relacionados em uma única operação SQL.


D

A propriedade cascade = CascadeType.ALL indica que as operações de persistência realizadas na entidade Cliente serão propagadas apenas para a operação de remoção (REMOVE) dos pedidos associados, sem afetar operações como PERSIST e MERGE.


E

A anotação mappedBy = "cliente" indica que a entidade Cliente é a proprietária (owning side) do relacionamento, sendo responsável por manter a chave estrangeira em sua própria tabela no banco de dados.