Ae, pessoal, blz! Eu to tentando criar uma entidade com uma sequência (sequence), mas o Oracle XE sempre seta a sequência com um cache de valor 20. Alguém conhece o parâmetro ou annotation para eu poder setar o valor desta propriedade e deixar como NOCACHE?
Mesmo com allocationSize igual a 0, a seqüência é criada com o cache. Tipo, se eu faço algumas inserções seguidas (por exemplo, com os IDs 1,2,3 e 4 (que a seqüência gera)), ele funciona normal. Se eu espero algum tempo e faço uma nova inserção, o Oracle gera ID com o cache (e o ID, ao invés de ser ID=5, passa a ser ID=21).
Eu queria ver se eu conseguiria setar o cache num annotation (e eu não precisar abrir o banco e setar a seqüência manualmente).
[quote=rodrigo_flausino]
Eu queria ver se eu conseguiria setar o cache num annotation (e eu não precisar abrir o banco e setar a seqüência manualmente).[/quote]
isso é com o allocationSize como o Diego sugeriu.
Será que outro objeto (uma classe, trigger, procedure etc) não esta usando a mesma sequence?
vale lembrar que se você manda salvar um objeto e alguma exceção é lançada, tua sequence pode ter sido incrementada.
[quote=rodrigo_flausino]Mesmo com allocationSize igual a 0, a seqüência é criada com o cache. Tipo, se eu faço algumas inserções seguidas (por exemplo, com os IDs 1,2,3 e 4 (que a seqüência gera)), ele funciona normal. Se eu espero algum tempo e faço uma nova inserção, o Oracle gera ID com o cache (e o ID, ao invés de ser ID=5, passa a ser ID=21).
Eu queria ver se eu conseguiria setar o cache num annotation (e eu não precisar abrir o banco e setar a seqüência manualmente).[/quote]
Uma sequence em Oracle trabalha assim mesmo. Não é possivel garantir continuidade, apenas unicidade. Por menor que você deixe o buffer (mesmo configurando no BD), pode surgir gaps na sequencia. Se você quer garantir continuidade, não pode usar sequence do Oracle.