

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
No contexto da evolução da arquitetura J2EE, posteriormente chamada de Java EE e Jakarta EE, os Entity Beans foram substituídos por
Java Persistence API.
Servlets.
Applets.
JavaScript.
JavaServer Faces.
Em um sistema corporativo desenvolvido em Java, a equipe precisa persistir entidades de domínio em um banco de dados relacional, utilizar uma implementação concreta para o Mapeamento Objeto-Relacional, manter histórico das alterações realizadas em determinadas entidades e controlar a evolução do esquema do banco de dados entre os ambientes de desenvolvimento, homologação e produção.
Com base nesse cenário, analise as seguintes afirmativas:
I. A Java Persistent API (JPA) define uma especificação para persistência objeto-relacional em aplicações Java, permitindo o mapeamento de classes e relacionamentos para estruturas de bancos relacionais.
II. O Hibernate pode atuar como implementação da JPA, fornecendo mecanismos concretos de ORM para persistência, consultas e sincronização entre objetos Java e tabelas relacionais.
III. O Hibernate Envers é utilizado para controlar migrações versionadas do esquema do banco de dados, enquanto o Flyway registra o histórico das alterações realizadas nas entidades persistentes.
Está correto o que se afirma em
I, apenas.
II, apenas.
I e II, apenas.
II e III, apenas.
I, II e III.
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:

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 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.
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.
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.
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.
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.
Em uma aplicação que utiliza JPA 2.1 (ou superior), ao listar entidades Pedido, ocorre o problema do N+1 selects ao acessar a associação pedido.cliente mapeada como @ManyToOne(fetch = FetchType.LAZY). Para garantir que Cliente seja carregado na mesma consulta que busca Pedido, eliminando o N+1, o desenvolvedor deve:
Utilizar JOIN FETCH na consulta JPQL.
Alterar o relacionamento para FetchType.EAGER.
Utilizar uma consulta JPQL com JOIN para filtrar ou restringir os resultados.
Utilizar limitação de intervalo (setFirstResult / setMaxResults) na consulta JPQL.
Uma analista de dados está implementando uma solução de persistência de dados para um novo sistema de gerenciamento de documentos utilizando JPA 2.0. Para otimizar o desempenho e evitar o problema N+1, ela precisa garantir que as entidades relacionadas sejam carregadas de forma eficiente.
Para carregar as entidades via JPA 2.0 corretamente e mitigar o problema N+1 de forma eficiente, a analista deve:
utilizar a anotação @ManyToOne sem especificar a estratégia de carregamento, permitindo que o JPA decida a melhor abordagem;
implementar consultas JPQL manuais para carregar as entidades relacionadas, garantindo o controle total sobre o processo de carregamento;
utilizar a anotação @OneToMany com a estratégia FetchType.LAZY e utilizar JOIN FETCH nas consultas JPQL para carregar as entidades relacionadas de forma eficiente;
configurar o FetchType como EAGER em todos os relacionamentos @ManyToOne, garantindo que as entidades relacionadas sejam sempre carregadas junto com a entidade principal;
utilizar a anotação @LazyToOne(false) em relacionamentos @ManyToOne, a fim de carregar as entidades relacionadas apenas quando acessadas, evitando o carregamento antecipado.
No processo de modernização do sistema interno de gestão de contratos da empresa, a equipe de desenvolvimento precisa adotar uma tecnologia padrão para garantir a persistência dos dados de maneira consistente e eficiente.
Considerando a necessidade de integração com aplicações Java já existentes e o uso de boas práticas de mapeamento objeto-relacional, assinale a alternativa que possibilita a persistência de dados e o gerenciamento eficiente das informações.
JavaFX.
Servlets.
JSF (JavaServer Faces).
JPA (Java Persistence API).
EJB (Enterprise JavaBeans).
Considere uma arquitetura que utiliza o Hibernate 7.2/Jakarta Persistence (jakarta.persistence.InheritanceType). Pretende-se mapear três entidades: mamífero, cachorro e gato. As entidades cachorro e gato herdam de mamífero. O modelo de banco de dados para representar essas entidades deve ser construído de forma que exista uma tabela para cada entidade . As tabelas Cachorro e Gato devem fazer referência à tabela Mamífero.
Assinale a alternativa que apresenta a anotação CORRETA que deve ser utilizada.
@Inheritance(strategy = InheritanceType.JOINED)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Inheritance(strategy = InheritanceType.SPECIALIZED_SUPERCLASS)
Uma equipe de desenvolvimento de uma prefeitura está projetando um sistema de gerenciamento de dados para atender às demandas de diferentes departamentos, utilizando o Spring Boot como framework principal. Para que o Hibernate seja corretamente integrado ao projeto Spring Boot, deve-se
configurar manualmente o mapeamento ORM diretamente no arquivo application.properties, desativando o uso de arquivos de mapeamento XML.
utilizar a anotação @Entity para definir as classes de modelo e configurar a dependência de Hibernate no arquivo pom.xml OU build.gradle, deixando o Spring Boot gerenciar automaticamente o Hibemate.
criar manualmente um arquivo hibernate. cfg.xml para configurar o Hibemale, sem a necessidade de qualquer integração com o Spring Boot.
configurar o Hibernate diretamente no código Java principal do projeto, criando um SessionFactory manualmente.
utilizar exclusivamente arquivos .properties para configurar as entidades, sem necessidade de anotação como @Entity nas classes de modelo.
Uma equipe de desenvolvimento está implementando uma aplicação Java com persistência de dados utilizando o Hibernate como Object Relational Mapping (ORM). Durante o desenvolvimento, a equipe precisa garantir a geração automática de tabelas no banco de dados com base nas entidades Java mapeadas. No arquivo XML de configuração do Hibernate, a propriedade que garante a geração automática do esquema de banco de dados durante o desenvolvimento é a
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect .Auto”/>
<property name="hibernate.create_sql" value="auto"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.connection.url.auto” value="jdbc:mysql://localhost:3306/db"/>
<property name="hibernate.id.new_generator_mappings” value="auto”/>
O Hibernate é um ORM (Object/Relational Mapping) utilizado para facilitar a integração da aplicação com a base de dados relacional utilizada. Um dos recursos disponibilizados é o tipo de estratégia para a geração de identificadores (id). Marque a alternativa que contém o tipo de estratégia que engloba uma coluna com autoincremento.
GenerationType.UUID
GenerationType.AUTO
GenerationType.IDENTITY
GenerationType.SEQUENCE
O JPA é uma especificação da plataforma Java que define um padrão para mapeamento objeto-relacional (ORM) e gerenciamento de persistência de dados. No JPA, a forma padrão de realizar o mapeamento de objetos Java (POJOs) para tabelas de bancos de dados relacionais é por meio de
anotações como @Database, @Primary, @Relation e @Field.
configurações XML como persistence.xml, entity.xml e mapping.xml.
anotações como @Entity, @Id, @Table e @Column.
interfaces como EntityFactory, QueryBuilder e PersistenceUnit.
classes como HibernateSession, EntityManagerFactory e DataMapper.
Associe as duas colunas, relacionando as tecnologias à sua definição.
1. JDBC.
2. JTA.
3. Hibernate.
4. JSF.
( ) Conjunto de APls para gerenciar componentes de interface do usuário, eventos, validação de entrada, navegação de página, internacionalização e acessibilidade.
( ) É uma solução de Mapeamento Objeto/Relacional para ambientes Java, que facilita o mapeamento de objetos Java para bancos de dados relacionais e vice-versa.
( ) Fornece acesso universal aos dados a partir da linguagem de programação Java. é possível acessar virtualmente qualquer fonte de dados, desde bancos de dados relacionais até planilhas e arquivos de texto simples.
( ) Especifica interfaces de alto nível entre um gerenciador de transações e as partes envolvidas em um sistema de transações distribuídas.
A sequência CORRETA dessa associação é:
(4) (3) (1) (2).
(2) (1) (3) (4).
(3) (4) (2) (1).
(2) (4) (3) (1).
(4) (1) (3) (2).
Um analista cria a entidade Processo para um sistema de um tribunal, persistindo processos judiciais em um banco relacional, com número do processo gerado automaticamente, tipo de ação não nulo e relacionamento N:1 com a entidade Vara (unidade judicial). Nesse contexto, o mapeamento correto da entidade Processo é @Entity para indicar que Processo é uma entidade,
@Id e @GeneratedValue(strategy = GenerationType.SEQUENCE) para o atributo número do processo, @Column(nullable=true) para tipo de ação, @ManyToOne @JoinColumn(name = "processo_id", nullable = false) para o atributo que representa a vara.
@Column(nullable=false) para o atributo que representa o tipo de ação, @ManyToOne(mappedBy = "vara") e @JoinColumn(name = "numero", nullable = false) para o atributo que representa a vara.
@Id e @GeneratedValue(strategy = GenerationType.IDENTITY) para o atributo número do processo, @Column(nullable=false) para o atributo que representa o tipo de ação, @ManyToOne e @JoinColumn(name = "vara_id", nullable = false) para o atributo que representa a vara.
@Id e @GeneratedValue(type = GenerationType.IDENTITY) para o atributo número do processo, @Column(nullable=false) para tipo de ação, @OneToOne @JoinColumn(name = "vara_id", nullable = true) para o atributo que representa a vara.
@Column(nullable=false) para tipo de ação, @ManyToOne e @JoinColumn(id = "vara_id", nullable = false) para o atributo que representa a vara.
Hibernate 7.0 representa um marco significativo na evolução do Hibernate ORM com foco especial na sua nova especificação para repositórios.
O Hibernate Data Repositories é uma implementação baseado no
Java EE8.
JBoss 3.0.
JQuery Data.
Jakarta Data.
Jakarta API 2.0.
Hibernate 5.x introduziu suporte nativo para as classes da API de Data e Hora do Java 8 (java.time), como
NodaTime, ZonedDateTime e DurationTime.
Year, Month, Day e Instant.
LocalDate, LocalTime e LocalDateTime.
DateTime, TimeStamp e DateInterval.
DateTimeZone, DateTimeImmutable e DateTimeOffset.
Acerca de Hibernate Envers, julgue o item a seguir.
9 O módulo Envers é um modelo do Hibernate cujo objetivo é fornecer uma solução de auditoria para classes de entidades.
Certo
Errado
Um Tribunal Regional do Trabalho está desenvolvendo um sistema de gestão de processos judiciais que inclui um módulo de auditoria para rastrear mudanças nos registros dos processos. É essencial que qualquer alteração nos dados dos processos judiciais (por exemplo, petições, decisões, movimentações) seja auditada para garantir a integridade e a transparência. Um Analista de TI decide utilizar Hibemate Envers para atender aos requisitos desse módulo de auditoria e, para isso, deve
configurar Hibemate Envers para criar uma tabela de auditoria que registre todas as alterações em entidades anotadas, incluindo quem fez a alteração e quando foi feita.
usar Hibernate Envers para criar automaticamente backups diários de todas as tabelas do banco de dados.
utilizar Hibemate Envers para migrar dados auditáveis entre diferentes esquemas de banco de dados de forma transparente.
implementar Hibernate Envers para validar os dados de auditoria dos processos judiciais antes de serem inseridos no banco
configurar Hibemate Envers para enviar notificações à auditoria, por e-mail, a cada alteração de dados no banco de dados.
Um experiente time técnico, com especialistas em desenvolvimento de softwares, precisa gerenciar tanto as alterações no schema do banco de dados quanto o histórico de auditoria das mudanças nos dados de entidades críticas do sistema. Para isso, estão avaliando o uso de Flyway e Hibernate Envers. Compreendendo o complexo cenário, analise as proposições abaixo e o relacionamento entre elas.
Asserção: O Flyway e o Hibernate Envers são ferramentas complementares que, quando usadas em conjunto, permitem a gestão do versionamento do schema do banco de dados e a auditoria de alterações nos dados das entidades, respectivamente.
PORQUE
Razão: O Flyway é uma ferramenta de migração de banco de dados que executa scripts SQL versionados, enquanto o Hibernate Envers é um módulo do Hibernate que, por meio de anotações e interceptores, rastreia automaticamente as alterações nos dados das entidades persistidas, armazenando um histórico de revisões.
Diante do exposto, assinale a alternativa correta.
A asserção é uma proposição verdadeira, e a razão é uma justificativa correta da asserção
A asserção é uma proposição verdadeira, mas a razão não é uma justificativa correta da asserção
A asserção é uma proposição falsa, e a razão é uma justificativa correta da asserção
Ambas as proposições são proposições falsas
Considere o bloco de código a seguir, que utiliza o Hibernate 5 ou superior.
@OneToMany{mappedBy = "usuario", fetch = FetchType . EAGER)
priva.te List<Pedido> pedidos;
Nesse exemplo, fetch = FetchType.EAGER indica que
o Hibernate recuperará apenas um pedido relacionado ao usuário especificado e, caso se deseje a lista completa de pedidos do usuário, deve-se utilizar FetchType . ALL ao invés de FetchType . EAGER.
quando um usuario for recuperado do banco de dados, será estabelecida uma relação um-para-muitos com a entidade Pedido, recuperando, mas não carregando, todos os pedidos associados a um usuário específico.
o Hibernate não carregará a coleção pedidos imediatamente quando o objeto Usuario for recuperado do banco de dados. Em vez disso, a lista de pedidos só será carregada quando for explicitamente acessada no código.
quando um Usuario for recuperado do banco, todos os pedidos relacionados serão carregados imediatamente, independentemente de eles serem necessários ou nao.
quando um Pedido for recuperado do banco, será estabelecida uma relação um-para-muitos com a entidade Usuario, recuperando todos os usuários associados a um pedido específico.
Um desenvolvedor precisa criar uma aplicação empresarial que utilize as especificações da plataforma Java EE. Considerando os itens abaixo:
1. Persistência de dados em um banco relacional.
2. Interface gráfica web rica e baseada em componentes.
3. Gerenciamento de transações distribuídas em múltiplos recursos.
4. Comunicação assíncrona entre sistemas.
Quais especificações devem ser utilizadas para atender aos requisitos descritos, respectivamente?
JPA para persistência, JSF para interface gráfica, JTA para transações e JMS para comunicação assíncrona.
EJB para persistência, JSF para interface gráfica, JPA para transações e JMS para comunicação assíncrona.
JTA para persistência, EJB para interface gráfica, JSF para transações e JPA para comunicação assíncrona.
JMS para persistência, JPA para interface gráfica, EJB para transações e JSF para comunicação assíncrona.