Estereótipos do Perfil de Transformação UML-para-JPA

O perfil de transformação UML-para-JPA contém estereótipos que podem ser aplicados a parâmetros, propriedades, documentação, relacionamentos específicos, classes, pacotes e modelos. A transformação transforma apenas os estereótipos que são aplicados a elementos em classes que possuem o estereótipo «Entity» aplicado.
A tabela a seguir lista os estereótipos do perfil e suas propriedades e tipos relacionados, e o código que a transformação gera.
Nota: Na configuração de transformação, se você definir a propriedade Gerar descritor de implementação para true, a transformação gera anotações equivalentes no arquivo persistence.xml em vez de no código Java™.
Estereótipo Aplica-se a Propriedades Restrições Código Gerado
«Entity» Classes nome

catálogo
esquema

O bean gerado não especifica a palavra-chave final, não é uma classe aninhada e possui um ID. Classe Java com as seguintes características:
  • Anotação @Entity
  • Outros requisitos de Java bean como um ID e construtor padrão
  • Se você especificar valores para as propriedades do estereótipo, uma anotação @Table que tem atributos correspondentes e os valores que você especifica
«Inheritance» Classes com o estereótipo «Entity» aplicado. Este estereótipo identifica como outras classes de Entidade herdam dessa classe de Entidade. discriminatorColumn: identifica a coluna de discriminador. Esta propriedade será utilizada apenas se a propriedade de estratégia for configurada como SINGLE_TABLE.

discriminatorType: identifica o tipo de coluna que é utilizado como discriminador.
strategy: esta propriedade é do tipo InheritanceStrategy

As tabelas únicas geradas contêm um valor de discriminador e um tipo de discriminador.

Outras estratégias de herança não possuem valores de discriminador e tipos de discriminador.

 
«DiscriminatorValue» Classes com as seguintes características:
  • Estereótipo «Entity» aplicado
  • Estratégia de herança de Tabela Única, ou herda de uma classe com uma estratégia de herança de Tabela Única
Este estereótipo identifica como outras classes de Entidade herdam dessa classe de Entidade.
Valor   Classes de entidade com uma anotação @DiscriminatorValue que contém o valor especificado na propriedade value
«SequenceGenerator» Classes com o estereótipo «Entity» aplicado, ou uma propriedade em uma classe com o estereótipo «Entity» aplicado allocationSize

initialValue
nome
sequenceName

  Anotação @SequenceGenerator para a classe ou campo gerado
«TableGenerator»   Anotação @TableGenerator para a classe ou campo gerado
«Relationship Options» Associações entre duas classes que possuem o estereótipo «Entity» aplicado. cascata

buscar
opcional

  Relacionamento de entidades entre as classes geradas
«JoinColumn» Associações que não sejam muitas-para-muitas ou direcionais uma-para-muitas entre duas classes que possuem o estereótipo «Entity» aplicado. columnDefinition

inserível
nome
anulável
primaryKey
referencedColumnName
tabela
exclusivo
atualizável

 
  • Se a propriedade primaryKey for definida para true, a transformação gera uma anotação @PrimaryKeyJoinColumn ou @PrimaryKeyJoinColumns que tem atributos correspondentes e os valores que você especifica
  • Se a propriedade primaryKey for definida para false, a transformação gera uma anotação @JoinColumn ou @JoinColumns que tem atributos correspondentes e os valores que você especifica
  • A transformação também gera um anotação que corresponde ao tipo de associação entre as classes, como nesse exemplo: @OneToOne
«JoinColumn», «JoinTable», ou ambos Associações muitas-para-muitas ou direcionais uma-para-muitas entre duas classes que possuem o estereótipo «Entity» aplicado.

catálogo
inverseJoinColumns_columnDefinition
inverseJoinColumns_insertable
inverseJoinColumns_name
inverseJoinColumns_nullable
inverseJoinColumns_referencedColumnName
inverseJoinColumns_table
inverseJoinColumns_unique
inverseJoinColumns_updatable
nome
esquema

 
  • Anotação que corresponde ao tipo de associação entre as classes, como nesse exemplo: @ManyToMany
  • @JoinTable anotação que contém as seguintes informações:
    • Atributos que correspondem às propriedades do estereótipo e os valores que você especifica para as propriedades
    • Atributos que correspondem às propriedades do estereótipo «JoinColumn» e os valores que você especifica para as propriedades
«Id» Propriedades     Campo Java com uma anotação @Id. A transformação também gera código para a operação de valores iguais e código hashCode.

A transformação ignorará o estereótipo se o estereótipo «Entity» não for aplicado à classe que contém a propriedade.

Se existir mais de um estereótipo «Id» na mesma classe de entidade, a transformação criará o seguinte:
  • Uma classe de chave primária nomeada beannamePK. Essa classe possui uma notação @Embeddable e contém os campos Java gerados.
  • Na classe de bean, uma propriedade nomeada pk que é do tipo classe de chave primária. Essa propriedade tem uma notação @EmbeddedID.

As operações hashCode e equals referenciam as operações hashCode e equals na classe Embeddable.

«Basic» Propriedades em classes que possuem o estereótipo «Entity» aplicado buscar

opcional

  Anotação @Basic nas propriedades que especificam valores para todas as propriedades no estereótipo
«Column» columnDefinition

inserível
comprimento
nome
anulável
precisão
escala
tabela
exclusivo
atualizável

  Anotação @Column nas propriedades que especificam valores para todas as propriedades do estereótipo
«Enumerated» Valor   Anotação @Enumerated nas propriedades que especificam valores para todas as propriedades do estereótipo
«GeneratedValue» gerada

estratégia

  Anotação @GeneratedValue para o campo gerado, e atributos correspondentes com os valores que você especifica nas propriedades do estereótipo
«Lob»     Anotação @Lob para o campo gerado

Se o estereótipo «Basic» não for aplicado à propriedade no modelo, a transformação incluirá a anotação @Basic e configurará o tipo da propriedade como FetchTypeLazy.

«Temporal» Valor   Anotação @Temporal no campo gerado
«Callback» Operações em classes com o estereótipo «Entity» aplicado Valor, que especifica uma matriz de tipo Retorno de Chamada   Anotação que corresponde aos valores que você seleciona para a operação
«Datasource» Atores     Referências de beans acionados por mensagens e beans de sessão à origem de dados especificada pelo estereótipo

Feedback