Comando wsreversemapping
A ferramenta wsreversemapping gera definições de classes persistentes e metadados a partir de um esquema de banco de dados.
Sintaxe
Antes de executar o comando, você deve ter uma cópia do arquivo persistence.xml no caminho de classe ou especificá-lo como um arquivo de propriedades no argumento -p [path_to_persistence.xml]. Emita o comando a partir do subdiretório bin do diretório profile_root.
A sintaxe do comando é a seguinte:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsreversemapping.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsreversemapping [parameters][arguments]
![[Windows]](../images/windows.gif)
wsreversemapping.bat [parameters][arguments]
Parameters
- -schemas/-s <nomes de esquemas e de
tabelas>: Uma lista de nomes de esquemas e de tabelas, separados por
vírgula, para executar a ferramenta wsreversmapping caso nenhum arquivo de esquema XML seja fornecido.
Cada elemento da lista deverá seguir as convenções de nomenclatura da propriedade openjpa.jdbc.Schemas. Se esse sinalizador de parâmetro for omitido, ele assumirá o padrão do valor da propriedade Schemas. Se a propriedade Esquemas não estiver definida, todos os esquemas serão mapeados de modo reverso.
- -package/-p <package name>:
O nome do pacote das classes geradas.
Se nenhum nome de pacote for fornecido, o código gerado não conterá declarações de pacote.
- -directory/-d <diretório de saída>:
Todos os códigos e metadados gerados são gravados no diretório nesse caminho.
Se o caminho não corresponder ao pacote de uma classe, a estrutura do pacote será criada sob o diretório. Esse parâmetro assume o padrão do diretório atual.
- -useSchemaName/-sn <true/t | false/f>:
Configure esse sinalizador de parâmetro para true para incluir o nome do esquema e
da tabela no nome de cada classe gerada.
Esse método pode ser útil quando lidar com vários esquemas que possuem tabelas com nomes idênticos.
- -useForeignKeyName/-fkn <true/t
| false/f>: Configure esse sinalizador de parâmetro para true se
desejar que os nomes de campos para as relações sejam baseados no nome da chave
estrangeira do banco de dados.
Por padrão, os nomes de campos das relações originam-se do nomes da classe relacionada.
- -nullableAsObject/-no <true/t
| false/f>: Por padrão, todas as colunas de chave não estrangeira são
mapeadas para primitivas.
Configure esse sinalizador de parâmetro para true para gerar campos de wrapper primitivos em vez de colunas que suportam valores nulos.
- -blobAsObject/-bo <true/t | false/f>:
Por padrão, todas as colunas binárias são mapeadas para os campos byte[].
Configure esse sinalizador de parâmetro para true para mapeá-los para os campos Objeto no lugar.
Atenção: Quando mapeada dessa maneira, presume-se que a coluna contenha um objeto Java™ serializado. - -primaryKeyOnJoin/pkj <true/t
| false/f>: O comportamento da ferramenta de mapeamento reverso padrão
é mapear todas as tabelas com as chaves primárias para as classes persistentes.
Se seu esquema possuir chaves primárias também em várias tabelas unidas, configure esse sinalizador para true para evitar a criação de classes para essas tabelas.
- -inverseRelations/-ir <true/t | false/f>: Configure esse sinalizador de parâmetro para false para impedir a criação de relações um-para-muitos ou um-para-um para cada relação muitos-para-um ou um-para-um detectada.
- -useDatastoreIdentity/-ds <true/t
| false/f>: Configure para true para usar uma identidade de armazenamento
de dados para tabelas que possuem colunas de chave primária numérica única.
Normalmente, a ferramenta usa a identidade do aplicativo para todas as classes geradas.
- -useBuiltinIdentityClass/-bic <true/t
| false/f>: Configure esse sinalizador de parâmetro para false para
evitar que a ferramenta wsreversemapping use classes de identidade de aplicativo integradas
quando possível.
Isso força a ferramenta a criar classes de identidade do aplicativo customizado quando houver apenas uma coluna de chave primária.
- -innerIdentityClasses/-inn <true/t
| false/f>: Configure esse sinalizador de parâmetro para true para
que qualquer identidade de aplicativo gerada classificada seja criada como classes internas
estáticas dentro das classes persistentes.
A configuração padrão é false.
- -identityClassSuffix/-is <suffix>:
Sufixo a ser anexado aos nomes de classes para formar nomes de classes de identidade de aplicativo,
ou para classes de identidade internas, o nome de classe interna.
O sufixo padrão é Id.
- -typeMap/-typ <type mapping>:
Uma cadeia que especifica as classes Java
padrão a serem geradas para cada tipo de SQL visto no esquema.
O formato é SQLTYPE1=JavaClass1, SQLTYPE2=JavaClass2. O nome do tipo SQL procura primeiro uma customização baseada em SQLTYPE(SIZE,PRECISION); em seguida, SQLTYPE(SIZE) e depois SQLTYPE. Se uma coluna de tipo CHAR for localizada, ela primeiro localizará a especificação de nome do tipo CHAR(50,0) e, em seguida, procurará por CHAR(50) e, por fim, pelo CHAR. Por exemplo, para gerar uma matriz char para cada coluna char cujo tamanho seja exatamente de 50 caracteres, e para gerar um short para cada nome de tipo de INTEGER, poderá especificar CHAR(50)=char[],INTEGER=short.
Atenção: Vários bancos de dados relatam nomes de tipos diferentes, em que um tipo de banco de dados pode não funcionar para outro banco de dados. Ative a criação de log no nível TRACE no canal de metadados para controlar quais nomes de tipo o JPA for WebSphere Application Server está examinando. - -customizerClass/-cc <class name>:
O nome de classe completo de um plug-in de customização org.apache.openjpa.jdbc.meta.ReverseCustomizer.
Se você não especificar um customizador reverso próprio, o sistema assumirá o padrão de PropertiesReverseCustomizer. Esse customizador suporta a especificação de opções de customização simples no arquivo de propriedades fornecido com o sinalizador -customizerProperties.
- -customizerProperties/-cp<properties file or resource>: O caminho ou nome do recurso de um arquivo de propriedades a ser transmitido para o customizador reverso na inicialização.
- -customizer/-c <property name> <property value>: O nome da propriedade fornecido é correspondido com a propriedade do Java bean no customizador reverso especificado e configurado para o valor fornecido.
Uso
- As tabelas do banco de dados e a conexão com o banco de dados deverão estar configuradas.
- Execute a ferramenta wsreversemapping a partir da linha de comandos no diretório $ {profile_root}/bin/.
- A ferramenta gera os arquivos .java para cada classe, junto com um arquivo descritor XML, orm.xml.
Exemplos
Gerar entidades com base nas informações salvas no arquivo schema.xml. Schema.xml foi criado pela execução da ferramenta de esquema. Os arquivos Java são criados no diretório src e utilizam o pacote com.xyz:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
${profile_root}/bin/wsreversemapping.sh -pkg com.xyz -d ./src schema.xml
![[IBM i]](../images/iseries.gif)
${profile_root}/bin/wsreversemapping -pkg com.xyz -d ./src schema.xml
![[Windows]](../images/windows.gif)
${profile_root}\bin\wsreversemapping.bat -pkg com.xyz -d ./src schema.xml
Gere entidades com base nas informações em um banco de dados DB2. As entidades são criadas no diretório src e utilizam o pacote com.reversemapped:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:\> %profile_root%/bin/wsreversemapping.bat -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsreversemapping -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsreversemapping.bat -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
Informações adicionais
Para obter informações adicionais, leia a seção de mapeamento no Guia do Usuário do Apache OpenJPA.