Considerações ao Reexecutar Transformações UML-para-JPA

A transformação UML-para-Java e a transformação UML-para-JPA incluem a anotação @generated, que também é chamada de tag @generated, em determinados elementos gerados. Quando você reexecuta uma transformação, ela sobrescreve elementos que contêm a tag @generated. A transformação também sobrescreve qualificadores e membros de classes, além de qualificadores, parâmetros e o corpo de métodos.
A transformação UML-para-JPA inclui a tag @generated nos seguintes elementos gerados:

Outras Anotações

Se uma anotação no código gerado tiver um estereótipo correspondente nos perfis **EJB e JPA***, a transformação de UML em JPA irá sobrescrever a anotação quando você executar novamente a transformação.

A transformação não sobrescreve anotações que não correspondam a um estereótipo nos perfis.

Considere o seguinte exemplo:

Um modelo UML contém uma classe com as seguintes características:
  • O estereótipo Entidade é aplicado a ele
  • Contém uma propriedade UML com os estereótipos ID e GeneratedValue aplicados a ele.
  • No estereótipo GeneratedValue, o valor da propriedade de estratégia é definido como 1 - Identidade.

Depois de executar a transformação de UML em JPA, o código gerado contém a seguinte anotação: @GeneratedValue(strategy = GenerationType.IDENTITY)

No código gerado, suponha que você altere a anotação conforme a seguir: @GeneratedValue(strategy = GeneratedValue.TABLE)

Dependendo do design contract modeling protocol (DCMP) que você selecionar na configuração de transformação, os seguintes eventos ocorrerão:
  • Se a transformação utilizar o DCMP, Conceitual...
  • Se a transformação utilizar o DCMP de Modelagem Fixa...
  • Se a transformação utilizar o DCMP de Modelagem Reconciliada, para sincronizar o modelo e o código, você deverá mascarar a alteração correspondente na propriedade do modelo, ou executar a transformação de JPA em UML.