Todas As Anotações JPA

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 15

26/07/2020 Todas as anotações JPA: Anotações de mapeamento - DZone Java

Este artigo fornece 89 anotações de mapeamento JPA para referência rápida e / ou resumo. Vamos começar!

Aprenda JPA em profundidade no Tutorial da Java Persistence API

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.

Veja a seção Tipo de acesso para mais informações.

@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.

Consulte a seção Substituindo tipos incorporáveis para obter mais informações.

@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.

Consulte a seção Substituindo tipos incorporáveis para obter mais informações.

@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.

Consulte o capítulo Tipos básicos para obter mais informações.

@Cacheable
A anotação @Cacheable é usada para especificar se uma entidade deve ser armazenada no cache de
segundo nível.

Consulte o capítulo Cache para obter mais informações.

@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.

Consulte a seção Coleções de tipos incorporáveis para obter mais informações.

@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.

Consulte a seção de anotação @Column para obter mais informações.

@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.

Veja a seção AttributeConverter para mais informações.

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.

Veja a seção AttributeConverter para mais informações.

@Converts
A anotação @Converts é usada para agrupar várias anotações @Convert .

Veja a seção AttributeConverter para mais informações.

@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.

Veja a seção Discriminador para mais informações.

@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

Veja a seção Discriminador para mais informações.

@ElementCollection
A anotação @ElementCollection é usada para especificar uma coleção de tipos básicos ou incorporáveis.

Veja a seção Coleções para mais informações.

@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.

Veja a seção Embeddables para mais informações.

@Embutido
A anotação @Embedded é usada para especificar que um determinado atributo de entidade represente um
tipo incorporável.

Veja a seção Embeddables para mais informações.

@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.

Veja a seção Entidade para mais informações.

@EntityListeners
A anotação @EntityListeners é usada para especificar uma matriz de classes de ouvinte de retorno de
chamada usadas pela entidade atualmente anotada.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@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.

Consulte a seção do tipo básico @Enumerated para obter mais informações.

@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.

Consulte a seção @ManyToOne with @ForeignKey para obter mais informações.

@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.

Consulte a seção Identificadores gerados automaticamente para obter mais informações.

@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.

Veja a seção Identificadores para mais informações.

@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.

Consulte o capítulo Índice de colunas para obter mais informações.

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.

Veja a seção Herança para mais informações.

@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.

Consulte a seção @ManyToOne with @JoinColumn para obter mais informações.

@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.

Consulte a seção de mapeamento @JoinTable para obter mais informações.

@Lob
A anotação @Lob é usada para especificar que o atributo da entidade anotada no momento representa um
tipo de objeto grande.

Veja a seção de mapeamento de BLOB para mais informações.

@Muitos para muitos


A anotação @ManyToMany é usada para especificar um relacionamento de banco de dados muitos para
muitos.

Consulte a seção de mapeamento @ManyToMany para obter mais informações.

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.

Consulte a seção de mapeamento do @ManyToOne para obter mais informações.

@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.

Consulte a seção de mapeamento @MapKey para obter mais informações.

@MapKeyClass
A anotação @MapKeyClass é usada para especificar o tipo da chave de mapa de uma associação
java.util.Map.

Consulte a seção de mapeamento @MapKeyClass para obter mais informações.

@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.

Consulte a seção de mapeamento @MapKeyType para obter um exemplo


de @MapKeyColumn uso de anotação.

@MapKeyEnumerated
A anotação @MapKeyEnumerated é usada para especificar que a chave da associação java.util.Map é um
Java Enum.

Consulte a seção de mapeamento @MapKeyEnumerated para obter mais informações.

@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.

Consulte a seção de mapeamento @MapKeyJoinColumn para obter mais informações.

@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

Consulte a seção de mapeamento @MapKeyTemporal para obter mais informações.

@MappedSuperclass
A anotação @MappedSuperclass é usada para especificar que os atributos de tipo anotados atualmente são
herdados por qualquer entidade de subclasse.

Consulte a seção @MappedSuperclass para obter mais informações.

@MapsId
A anotação @MapsId é usada para especificar que o identificador da entidade é mapeado pela
anotação @ManyToOne ou @OneToOne associação atualmente .

Consulte a seção de mapeamento @MapsId para obter mais informações.

@NamedAttributeNode
A anotação @NamedAttributeNode é usada para especificar cada nó de atributo individual que precisa ser
buscado por um Gráfico de Entidades.

Consulte a seção Obter gráfico para obter mais informações.

@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.

Consulte a seção Obter gráfico para obter mais informações.

@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 .

Consulte a seção de mapeamento CRUD personalizado para obter mais informações.

@NamedNativeQuery
A anotação @NamedNativeQuery é usada para especificar uma consulta SQL nativa que pode ser
recuperada posteriormente por seu nome.

Consulte a seção de mapeamento CRUD personalizado para obter mais informações.

@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.

Consulte a seção @NamedQuery para obter mais informações.

@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.

Consulte a seção Subgráfico Buscar para obter mais informações.

@Um para muitos


A anotação @OneToMany é usada para especificar um relacionamento de banco de dados um para muitos.

Consulte a seção de mapeamento @OneToMany para obter mais informações.

@Um a um
A anotação @OneToOne é usada para especificar um relacionamento de banco de dados um a um.

Consulte a seção de mapeamento @OneToOne para obter mais informações.

@Ordenar por
A anotação @OrderBy é usada para especificar os atributos da entidade usados para classificar ao buscar a
coleção anotada no momento.

Consulte a seção de mapeamento @OrderBy para obter mais informações.

@OrderColumn
A anotação @OrderColumn é usada para especificar que a ordem de coleta de anotações atual deve ser
materializada no banco de dados.

Consulte a seção de mapeamento @OrderColumn para obter mais informações.

@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.

Consulte a seção de mapeamento @PersistenceContext para obter mais informações.

@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.

Consulte a seção de mapeamento @PersistenceProperty para obter mais informações.

@PersistenceUnit
A anotação @PersistenceUnit é usada para especificar o EntityManagerFactory que precisa ser injetado
como uma dependência.

Consulte a seção de mapeamento @PersistenceUnit para obter mais informações.

@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.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@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.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@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.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@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

Consulte a seção de retornos de chamada JPA para obter mais informações.

@PrePersist
A anotação @PrePersist é usada para especificar um método de retorno de chamada que é acionado antes da
persistência de uma entidade.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@PreRemove
A anotação @PreRemove é usada para especificar um método de retorno de chamada que é acionado antes
que uma entidade seja removida.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@PreUpdate
A anotação @PreUpdate é usada para especificar um método de retorno de chamada que é acionado antes
que uma entidade seja atualizada.

Consulte a seção de retornos de chamada JPA para obter mais informações.

@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).

Consulte a seção de mapeamento @PrimaryKeyJoinColumn para obter mais informações.

@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.

Consulte a seção @QueryHint para obter mais informações.

@SecondaryTable
A anotação @SecondaryTable é usada para especificar uma tabela secundária para a entidade anotada no
momento.

Consulte a seção de mapeamento @SecondaryTable para obter mais informações.

@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.

Consulte a seção de mapeamento @SequenceGenerator para obter mais informações.

@SqlResultSetMapping
A anotação @SqlResultSetMapping é usada para especificar o ResultSet mapeamento de uma consulta
SQL nativa ou de um procedimento armazenado.

Consulte a seção de mapeamento SqlResultSetMapping para obter mais informações.

@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.

Consulte a seção de mapeamento da @Table para obter mais informações.

@TableGenerator
A anotação @TableGenerator é usada para especificar a tabela de banco de dados usada pelo gerador de
identidade da entidade atualmente anotada.

Consulte a seção de mapeamento @TableGenerator para obter mais informações.

@Temporal
A anotação @Temporal é usada para especificar o TemporalType atributo de entidade java.util.Date ou
java.util.Calendar atualmente anotado.

Consulte o capítulo Tipos temporais básicos para obter mais informações.

@Transient
A anotação @Transient é usada para especificar que um determinado atributo de entidade não deve ser
persistido.

Consulte a seção de mapeamento @Transient para obter mais informações.

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

Você também pode gostar