JPA - Padrões de geração de chave primária

3 views
Skip to first unread message

Paulo Sérgio da Silva Pacheco

unread,
Apr 2, 2014, 8:42:04 AM4/2/14
to Marcus Laprano, evolucao...@googlegroups.com

Padrões de geração de chave primária

Nas descrições do @ GeneratedValue , @ SequenceGenerator e @ TableGenerator anotações na Persistência Java Specification, certos padrões são apontados como específicos para o provedor de persistência. Principais padrões de geração de chaves do provedor de persistência padrão estão listados aqui.

@ GeneratedValue padrões são os seguintes:

  • Usando estratégia = AUTO (ou não estratégia ) cria um @ TableGenerator chamado SEQ_GEN com configurações padrão. A especificação de umgerador não tem efeito.

  • Usando estratégia = TABLE sem a especificação de um gerador cria um @ TableGenerator chamado SEQ_GEN_TABLE com configurações padrão.A especificação de um gerador , mas não @ TableGenerator cria e nomeia um @ TableGenerator com configurações padrão.

  • Usando estratégia = IDENTIDADE ou estratégia = seqüência produz os mesmos resultados, que são específicas do banco de dados.

    • Para bancos de dados Oracle, não especificando um gerador cria um @ SequenceGenerator chamado SEQ_GEN_SEQUENCE com configurações padrão. A especificação de um gerador , mas não @ SequenceGenerator cria e nomeia um @ SequenceGenerator com configurações padrão.

    • Para bancos de dados PostgreSQL, um SERIAL coluna chamada entidade de mesa pk-coluna _seq é criado.

    • Para bancos de dados MySQL, um AUTO_INCREMENT coluna é criada.

    • Para outros bancos de dados suportados, uma IDENTIDADE coluna é criada.

@ SequenceGenerator anotação tem um padrão específico para o provedor padrão. O padrão da sequï é o especificado nome .

@ TableGenerator padrões são os seguintes:

  • O padrão da tabela é SEQÜÊNCIA .

  • O padrão pkColumnName é SEQ_NAME .

  • O padrão valueColumnName é SEQ_COUNT .

  • O padrão pkColumnValue é o especificado nome , ou o padrão nome se nenhum nome for especificado.


-- 


ORIGINAL:

Primary Key Generation Defaults

In the descriptions of the @GeneratedValue@SequenceGenerator, and @TableGenerator annotations in the Java Persistence Specification, certain defaults are noted as specific to the persistence provider. The default persistence provider's primary key generation defaults are listed here.

@GeneratedValue defaults are as follows:

  • Using strategy=AUTO (or no strategy) creates a @TableGenerator named SEQ_GEN with default settings. Specifying a generator has no effect.

  • Using strategy=TABLE without specifying a generator creates a @TableGenerator named SEQ_GEN_TABLE with default settings. Specifying agenerator but no @TableGenerator creates and names a @TableGenerator with default settings.

  • Using strategy=IDENTITY or strategy=SEQUENCE produces the same results, which are database-specific.

    • For Oracle databases, not specifying a generator creates a @SequenceGenerator named SEQ_GEN_SEQUENCE with default settings. Specifying a generator but no @SequenceGenerator creates and names a @SequenceGenerator with default settings.

    • For PostgreSQL databases, a SERIAL column named entity-table_pk-column_SEQ is created.

    • For MySQL databases, an AUTO_INCREMENT column is created.

    • For other supported databases, an IDENTITY column is created.

The @SequenceGenerator annotation has one default specific to the default provider. The default sequenceName is the specified name.

@TableGenerator defaults are as follows:

  • The default table is SEQUENCE.

  • The default pkColumnName is SEQ_NAME.

  • The default valueColumnName is SEQ_COUNT.

  • The default pkColumnValue is the specified name, or the default name if no name is specified.



 
Saudações:
Nome...: PAULO PACHECO
Fixo...: 085 3086 6769
Celular: 085 8888 4498 OI
         085 9702 4498 TIM 
 

Reply all
Reply to author
Forward
0 new messages