No db2, a tabela é gerada normalmente, mas estou tendo problemas ao dar save de um objeto, acredito que no db2 exista outra forma de criar uma chave auto-increment ou sequence!
Alguém já passou por esse problema?!
E vc. criou o auto-increment no DB2 e, gostaria de saber qual versão do DB2 vc usa…pois vc. pode exportar seus dados do MySQL em formato texto salvar. E posteriormente criar uma tabela com a mesma estrutura da tabela original (MySQL) e importar esse dados para o DB2.
Olá Victor,
Simplificando a sua pergunta procure por uma literatura do DB2 no próprio site.:
Anidentitycolumnisanumericcolumninatablethatautomaticallygeneratesauniquenumericvalueinsequenceforeachrowinserted.Auniqueidentifierisoftenusedinapplicationstoidentifyaspecificrow.Unlikesequenceobjects,whichwediscussinsection7.16,Sequences,identitycolumnsareboundtothetabletheyaredefinedon.Therecanbeonlyoneidentitycolumnpertable.DB2cangeneratetheidentitycolumnvaluesintwoways.Generatedalways:ThevaluesarealwaysgeneratedbyDB2.Applicationsarenotallowedtoprovideanexplicitvalue.Generatedbydefault:Thevaluescanbeexplicitlyprovidedbyanapplication;ifnovalueisgiven,DB2generatesone.Inthiscase,however,DB2cannotguaranteetheuniquenessofthevaluegenerated.Tocreateanidentitycolumn,usetheCREATETABLEstatementwiththeGENERATEDclauseandmakesureitcontainstheIDENTITYkeywordbecauseGENERATEDcanalsobeusedtogenerateothervaluesautomaticallythatarenotidentitycolumns.Hereisanexample.CREATETABLEproduct(productnoINTEGERGENERATEDALWAYSASIDENTITY(STARTWITH200INCREMENTBY1),descriptionVARCHAR(50))ThecolumnproductnoisanINTEGERdefinedasanidentitycolumnthatisalwaysgenerated.Thevaluegeneratedwillstartfrom200,anditwillbeincrementedby1.Let's perform a few INSERT statements and see the results obtained.INSERT INTO product VALUES (DEFAULT,'banana'); --->inserts 200,bananaINSERT INTO product (description) VALUES ('apple'); --->inserts 201,appleINSERT INTO product VALUES (300,'pear'); --->error SQL0798NCOMMIT;INSERT INTO product (description) VALUES ('orange'); --->inserts 202,orangeROLLBACK;INSERT INTO product (description) VALUES ('plum');--->inserts203,plumCOMMIT;Thefollowingqueryshowsthefinalresult.SELECT*FROMproduct;PRODUCTNODESCRIPTION-----------------------200banana201apple203plum
sds.
William Silva
W
WilliamSilva
Olá,
Comece por aqui e depois compre um bom livro sobre o DB2 Express C 9 em “ingles” ok…
Ps. veja também " SequenceGenerator" na JPA com Hibernate.
Victor_Yuji_Maehira
Boa tarde!
Estou tendo um problema ao trocar meu banco de MySql para DB2 em uma aplicação usando hibernate 3
A chave de uma tabela era gerada usando @Id e @GeneratedValue
No db2, a tabela é gerada normalmente, mas estou tendo problemas ao dar save de um objeto, acredito que no db2 exista outra forma de criar uma chave auto-increment ou sequence!
Alguém já passou por esse problema?!
Valeu!
Victor_Yuji_Maehira
Bom dia!
Ainda estou no ambiente de desenvolvimento, por isso não tenho a preocupação de mantar os dados do MySQL! Só quero manter a mesma estrutura de dado! Acho que o problema está na geração da chave! Uma evidência é a query gerada.
No DB2:
No MySQL:
No MySQL, funciona normalmente e não tenho que me preocupar com a chave idEmpresa! No DB2, ele gera um valor default mas não insere no banco!
Em ambas as situações, a chave foi criada assim:
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long idEmpresa;
Para o DB2 funcionar como no MySQL, quando se trata de chave auto-increment, acho que os parâmetros de @GeneratedValue são outros! Estou no caminho certo?! A versão do db2 é 8.1
Valeu!
Victor_Yuji_Maehira
Oi Willian!
Onde vc arrumou essa documentação?!
No site da ibm ou do hibernate?!
Vc pode passar o link?!
Valeu!!!