Todas As Anotações JPA
Todas As Anotações JPA
Todas As Anotações JPA
Este artigo fornece 89 anotações de mapeamento JPA para referência rápida e / ou resumo. Vamos começar!
Anotações da JPA
1. @Access
2. @AssociationOverride
3. @AssociationOverrides
4. @AttributeOverride
5. @AttributeOverrides
6. @Basic
7. @Cacheable
8. @CollectionTable
9. @Column
10. @ColumnResult
11. @ConstructorResult
12. @Convert
13. @Converter
14. @Converts
15. @DiscriminatorColumn
16. @DiscriminatorValue
17. @ElementCollection
18. @Embeddable
19. @ Incorporado
20. @EmbeddedId
21. @Entity
22. @EntityListeners
23. @EntityResult
24. @Enumerated
25. @ExcludeDefaultListeners
26. @ExcludeSuperclassListeners
27. @FieldResult
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 1/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
28. @ForeignKey
29. @GeneratedValue
30. @Id
31. @IdClass
32. @Index
33. @ Herança
34. @JoinColumn
35. @JoinColumns
36. @JoinTable
37. @Lob
38. @ManyToMany
39. @ManyToOne
40. @MapKey
41. @MapKeyClass
42. @MapKeyColumn
43. @MapKeyEnumerated
44. @MapKeyJoinColumn
45. @MapKeyJoinColumns
46. @MapKeyTemporal
47. @MappedSuperclass
48. @MapsId
49. @NamedAttributeNode
50. @NamedEntityGraph
51. @NamedEntityGraphs
52. @NamedNativeQueries
53. @NamedNativeQuery
54. @NamedQueries
55. @NamedQuery
56. @NamedStoredProcedureQueries
57. @NamedStoredProcedureQuery
58. @NamedSubgraph
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 2/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
59. @OneToMany
60. @OneToOne
61. @OrderBy
62. @OrderColumn
63. @PersistenceContext
64. @PersistenceContexts
65. @PersistenceProperty
66. @PersistenceUnit
67. @PersistenceUnits
68. @PostLoad
69. @PostPersist
70. @PostRemove
71. @PostUpdate
72. @PrePersist
73. @PreRemove
74. @PreUpdate
75. @PrimaryKeyJoinColumn
76. @PrimaryKeyJoinColumns
77. @QueryHint
78. @SecondaryTable
79. @SecondaryTables
80. @SequenceGenerator
81. @SqlResultSetMapping
82. @SqlResultSetMappings
83. @StoredProcedureParameter
84. @Table
85. @TableGenerator
86. @Temporal
87. @Transient
88. @UniqueConstraint
89. @Version
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 3/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
Vamos descrever cada anotação com links para seus documentos Java e suas seções de documentação oficial.
@Acesso
A anotação @Access é usada para especificar o tipo de acesso da classe de entidade associada, superclasse
mapeada ou o atributo incorporável de classe e entidade.
@AssociationOverride
O @AssociationOverride anotação é utilizado para substituir um mapeamento de associação (por exemplo
@ManyToOne, @OneToOne, @OneToMany, @ManyToMany) herdada de uma superclasse mapeada ou um embutido.
@AssociationOverrides
O @AssociationOverrides é usado para agrupar várias anotações do @AssociationOverride .
@AttributeOverride
A anotação @AttributeOverride é usada para substituir um mapeamento de atributo herdado de uma
superclasse mapeada ou de um incorporável.
@AttributeOverrides
O @AttributeOverrides é usado para agrupar várias anotações do @AttributeOverride .
@Basic
A anotação @Basic é usada para mapear um tipo de atributo básico para uma coluna do banco de dados.
@Cacheable
A anotação @Cacheable é usada para especificar se uma entidade deve ser armazenada no cache de
segundo nível.
@CollectionTable
A anotação @CollectionTable é usada para especificar a tabela de banco de dados que armazena os valores
de uma coleção de tipos básica ou incorporável.
@Coluna
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 4/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
A anotação @Column é usada para especificar o mapeamento entre um atributo básico da entidade e a
coluna da tabela do banco de dados.
@ColumnResult
O @ColumnResult anotação é usado em conjunto com
os @SqlResultSetMapping ou @ConstructorResult anotações para mapear uma coluna SQL para um dado
comando SELECT.
Consulte a seção Associações de entidades com as consultas nativas nomeadas para obter mais informações.
@ConstructorResult
A anotação @ConstructorResult é usada em conjunto com as anotações @SqlResultSetMapping para
mapear as colunas de uma determinada consulta SELECT para um determinado construtor de objeto.
Consulte a seção Vários valores escalares NamedNativeQuery com ConstructorResult para obter mais
informações.
@Converter
A anotação @Convert é usada para especificar a implementação do AttributeConverter usada para
converter o atributo básico anotado no momento.
24.1.13 @Conversor
A anotação @Converter é usada para especificar que a implementação atual do AttributeConverter
daanotação pode ser usada como um conversor de atributo básico JPA.
@Converts
A anotação @Converts é usada para agrupar várias anotações @Convert .
@DiscriminatorColumn
A anotação @DiscriminatorColumn é usada para especificar o nome da coluna discriminadora e o tipo de
discriminador para as estratégias de herança SINGLE_TABLE e JOINED.
@DiscriminatorValue
A anotação @DiscriminatorValue é usada para especificar qual valor da coluna discriminador é usado para
mapear a entidade anotada no momento.
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 5/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@ElementCollection
A anotação @ElementCollection é usada para especificar uma coleção de tipos básicos ou incorporáveis.
@Embeddable
A anotação @Embeddable é usada para especificar tipos incorporáveis. Como os tipos básicos, os tipos
incorporáveis não têm identidade, sendo gerenciados por sua entidade proprietária.
@Embutido
A anotação @Embedded é usada para especificar que um determinado atributo de entidade represente um
tipo incorporável.
@EmbeddedId
A anotação @EmbeddedId é usada para especificar que o identificador de entidade é um tipo incorporável.
Consulte a seção Identificadores compostos com @EmbeddedId para obter mais informações.
@Entidade
A anotação @Entity é usada para especificar que a classe de anotação atualmente representa um tipo de
entidade. Diferentemente dos tipos básico e incorporável, os tipos de entidade têm uma identidade e seu
estado é gerenciado pelo contexto de persistência subjacente.
@EntityListeners
A anotação @EntityListeners é usada para especificar uma matriz de classes de ouvinte de retorno de
chamada usadas pela entidade atualmente anotada.
@EntityResult
A anotação @EntityResult é usada com a anotação @SqlResultSetMapping para mapear as colunas
selecionadas para uma entidade.
Consulte a seção Associações de entidades com as consultas nativas nomeadas para obter mais informações.
@Enumerated
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 6/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
A anotação @Enumerated é usada para especificar que um atributo de entidade representa um tipo
enumerado.
@ExcludeDefaultListeners
A anotação @ExcludeDefaultListeners é usada para especificar que a entidade anotada no momento ignora
a chamada de qualquer ouvinte padrão.
Consulte a seção Excluir ouvintes de entidade padrão para obter mais informações.
@ExcludeSuperclassListeners
A anotação @ExcludeSuperclassListeners é usada para especificar que a entidade anotada atualmente
ignora a chamada de ouvintes declarados por sua superclasse.
Consulte a seção Excluir ouvintes de entidade padrão para obter mais informações.
@FieldResult
A anotação @FieldResult é usada com a anotação @EntityResult para mapear as colunas selecionadas
para os campos de alguma entidade específica.
Consulte a seção Associações de entidades com as consultas nativas nomeadas para obter mais informações.
@ForeignKey
A anotação @ForeignKey é usada para especificar a chave estrangeira associada de
um mapeamento @JoinColumn . A @ForeignKeyannotation só é usado se a ferramenta de geração de
esquema automático está habilitado. Nesse caso, permite personalizar a definição de chave estrangeira
subjacente.
@GeneratedValue
A anotação @GeneratedValue especifica que o valor do identificador da entidade é gerado automaticamente
usando uma coluna de identidade, uma sequência de banco de dados ou um gerador de tabela. O Hibernate
suporta o @GeneratedValue mapeamento mesmo para UUIDidentifiers.
@Eu iria
A anotação @Id especifica o identificador da entidade. Uma entidade deve sempre ter um atributo
identificador, que é usado ao carregar a entidade em um determinado contexto de persistência.
@IdClass
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 7/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
A anotação @IdClass será usada se a entidade atual tiver definido um identificador composto. Uma classe
separada encapsula todos os atributos do identificador, que são espelhados pelo mapeamento de entidade
atual.
Consulte a seção Identificadores compostos com @IdClass para obter mais informações.
@Índice
A anotação @Index é usada pela ferramenta de geração automatizada de esquema para criar um índice de
banco de dados.
24.1.33 @Herança
A anotação @Inheritance é usada para especificar a estratégia de herança de uma hierarquia de classe de
entidade.
@JoinColumn
A anotação @JoinColumn é usada para especificar a coluna FOREIGN KEY usada ao ingressar em uma
associação de entidade ou em uma coleção incorporável.
@JoinColumns
A anotação @JoinColumns é usada para agrupar várias anotações @JoinColumns , que são usadas ao
mapear a associação de entidades ou uma coleção incorporável usando um identificador composto
@JoinTable
A anotação @JoinTable é usada para especificar a tabela de links entre duas outras tabelas do banco de
dados.
@Lob
A anotação @Lob é usada para especificar que o atributo da entidade anotada no momento representa um
tipo de objeto grande.
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 8/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@ManyToOne
A anotação @ManyToOne é usada para especificar um relacionamento de banco de dados muitos para um.
@Chave do mapa
A anotação @MapKey é usada para especificar a chave de uma associação java.util.Map para a qual o tipo
de chave é a chave primária ou um atributo da entidade que representa o valor do mapa.
@MapKeyClass
A anotação @MapKeyClass é usada para especificar o tipo da chave de mapa de uma associação
java.util.Map.
@MapKeyColumn
A anotação @MapKeyColumn é usada para especificar a coluna do banco de dados, que armazena a chave
de uma associação java.util.Mapassiation para a qual a chave do mapa é um tipo básico.
@MapKeyEnumerated
A anotação @MapKeyEnumerated é usada para especificar que a chave da associação java.util.Map é um
Java Enum.
@MapKeyJoinColumn
A anotação @MapKeyJoinColumn é usada para especificar que a chave da associação java.util.Map é uma
associação de entidade. A coluna de chave do mapa é uma FOREIGN KEY em uma tabela de links que
também une a tabela do proprietário do Mapa à tabela em que o valor do Mapa reside.
@MapKeyJoinColumns
A anotação @MapKeyJoinColumns é usada para agrupar
vários mapeamentos @MapKeyJoinColumnquando a chave de associação java.util.Map usa um
identificador composto.
@MapKeyTemporal
A anotação @MapKeyTemporal é usada para especificar que a chave da associação java.util.Map é
um @TemporalType (por exemplo, DATE, TIME, TIMESTAMP).
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 9/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@MappedSuperclass
A anotação @MappedSuperclass é usada para especificar que os atributos de tipo anotados atualmente são
herdados por qualquer entidade de subclasse.
@MapsId
A anotação @MapsId é usada para especificar que o identificador da entidade é mapeado pela
anotação @ManyToOne ou @OneToOne associação atualmente .
@NamedAttributeNode
A anotação @NamedAttributeNode é usada para especificar cada nó de atributo individual que precisa ser
buscado por um Gráfico de Entidades.
@NamedEntityGraph
A anotação @NamedEntityGraph é usada para especificar um Gráfico de Entidades que pode ser usado por
uma consulta de entidade para substituir o plano de busca padrão.
@NamedEntityGraphs
A anotação @NamedEntityGraphs é usada para agrupar várias anotações @NamedEntityGraph .
24.1.52 @NamedNativeQueries
A anotação @NamedNativeQueries é usada para agrupar várias anotações @NamedNativeQuery .
@NamedNativeQuery
A anotação @NamedNativeQuery é usada para especificar uma consulta SQL nativa que pode ser
recuperada posteriormente por seu nome.
@NamedQueries
A anotação @NamedQueries é usada para agrupar várias anotações @NamedQuery .
@NamedQuery
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 10/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
A anotação @NamedQuery é usada para especificar uma consulta JPQL que pode ser recuperada
posteriormente por seu nome.
@NamedStoredProcedureQueries
A anotação @NamedStoredProcedureQueries é usada para agrupar
várias anotações @NamedStoredProcedureQuery .
@NamedStoredProcedureQuery
A anotação @NamedStoredProcedureQuery é usada para especificar uma consulta de procedimento
armazenado que pode ser recuperada posteriormente por seu nome.
Consulte a seção Usando consultas nomeadas para chamar procedimentos armazenados para obter mais
informações.
@NamedSubgraph
A anotação @NamedSubgraph usada para especificar um subgráfico em um Gráfico de Entidades.
@Um a um
A anotação @OneToOne é usada para especificar um relacionamento de banco de dados um a um.
@Ordenar por
A anotação @OrderBy é usada para especificar os atributos da entidade usados para classificar ao buscar a
coleção anotada no momento.
@OrderColumn
A anotação @OrderColumn é usada para especificar que a ordem de coleta de anotações atual deve ser
materializada no banco de dados.
@PersistenceContext
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 11/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
A anotação @PersistenceContext é usada para especificar o EntityManager que precisa ser injetado como
uma dependência.
@PersistenceContexts
A anotação @PersistenceContexts é usada para agrupar várias anotações @PersistenceContext .
@PersistenceProperty
A anotação @PersistenceProperty é usada pela anotação @PersistenceContext para declarar propriedades
do provedor JPA que são passadas para o contêiner subjacente quando a EntityManager instância é criada.
@PersistenceUnit
A anotação @PersistenceUnit é usada para especificar o EntityManagerFactory que precisa ser injetado
como uma dependência.
@PersistenceUnits
A anotação @PersistenceUnits é usada para agrupar várias anotações @PersistenceUnit .
@PostLoad
A anotação @PostLoad é usada para especificar um método de retorno de chamada que é acionado após o
carregamento de uma entidade.
@PostPersist
A anotação @PostPersist é usada para especificar um método de retorno de chamada que é acionado após a
persistência de uma entidade.
@PostRemove
A anotação @PostRemove é usada para especificar um método de retorno de chamada que é acionado após
a remoção de uma entidade.
@PostUpdate
A anotação @PostUpdate é usada para especificar um método de retorno de chamada que é acionado após a
atualização de uma entidade.
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 12/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@PrePersist
A anotação @PrePersist é usada para especificar um método de retorno de chamada que é acionado antes da
persistência de uma entidade.
@PreRemove
A anotação @PreRemove é usada para especificar um método de retorno de chamada que é acionado antes
que uma entidade seja removida.
@PreUpdate
A anotação @PreUpdate é usada para especificar um método de retorno de chamada que é acionado antes
que uma entidade seja atualizada.
@PrimaryKeyJoinColumn
A anotação @PrimaryKeyJoinColumn é usada para especificar que a coluna de chave primária da entidade
atualmente anotada também é uma chave estrangeira para outra entidade (por exemplo, uma tabela de classe
base em uma estratégia de herança JOINED, a tabela primária em um mapeamento de tabela secundária ou a
tabela pai em um @OneToOne relacionamento).
@PrimaryKeyJoinColumns
A anotação @PrimaryKeyJoinColumns é usada para agrupar várias anotações @PrimaryKeyJoinColumns.
@QueryHint
A anotação @QueryHint é usada para especificar uma dica de provedor JPA usada por a @NamedQuery ou a
@NamedNativeQueryannotation.
@SecondaryTable
A anotação @SecondaryTable é usada para especificar uma tabela secundária para a entidade anotada no
momento.
@SecondaryTables
A anotação @SecondaryTables é usada para agrupar várias anotações @SecondaryTable .
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 13/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@SequenceGenerator
A anotação @SequenceGenerator é usada para especificar a sequência do banco de dados usada pelo
gerador de identificadores da entidade atualmente anotada.
@SqlResultSetMapping
A anotação @SqlResultSetMapping é usada para especificar o ResultSet mapeamento de uma consulta
SQL nativa ou de um procedimento armazenado.
@SqlResultSetMappings
A anotação @SqlResultSetMappings é usada para agrupar várias anotações @SqlResultSetMapping .
@StoredProcedureParameter
A anotação @StoredProcedureParameter é usada para especificar um parâmetro de
uma @NamedStoredProcedureQuery .
Consulte a seção Usando consultas nomeadas para chamar procedimentos armazenados para obter mais
informações.
@Tabela
A anotação @Table é usada para especificar a tabela principal da entidade atualmente anotada.
@TableGenerator
A anotação @TableGenerator é usada para especificar a tabela de banco de dados usada pelo gerador de
identidade da entidade atualmente anotada.
@Temporal
A anotação @Temporal é usada para especificar o TemporalType atributo de entidade java.util.Date ou
java.util.Calendar atualmente anotado.
@Transient
A anotação @Transient é usada para especificar que um determinado atributo de entidade não deve ser
persistido.
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 14/15
26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java
@Restrição única
A anotação @UniqueConstraint é usada para especificar uma restrição exclusiva a ser incluída pelo gerador
de esquema automatizado para a tabela principal ou secundária associada à entidade atualmente anotada.
Consulte o capítulo de restrição exclusiva das colunas para obter mais informações.
@Versão
A anotação @Version é usada para especificar o atributo de versão usado para o bloqueio otimista.
https://dzone.com/articles/all-jpa-annotations-mapping-annotations 15/15