Hibernate

6 respostas
Adriano_Nogueira

Olá amigos do guj, estou desenvolvendo um projeto java+hibernate+postgres, estou com um problema.
na hora que vou fazer a persistencia dos dados o hibernate lê o sequence do banco postgres e está incrementando o valor da chave de 100 em 100 valores apesas de ter definido o sequence da seguinte forma:
CREATE SEQUENCE “public”."usuario_sequence"
INCREMENT 1 MINVALUE 0
MAXVALUE 9223372036854775807 START 4
CACHE 1;
na hora da persistencia ele lê a ultima chave ex:100 e na hora de nextval(usuario_sequence) ele retorna 200.
desde já agradeço pela ajuda.

6 Respostas

lbosco

Seguinte,
como está configurada a assinatura da sua classe Model???

tenho um exemplo desse auqi pode te ajudar, se for esse o problema, é claro.

@Entity @Table(name="NOME_DA_TABELA") @TableGenerator(name = "sequence", table = "SEQUENCE", pkColumnName = "nmPK", valueColumnName = "vlPK", allocationSize = 1) public class [NomeDaClasse] implements Serializable { }

Espero ter ajudado,
obrigado

faelcavalcanti

isso acontece todas as vezes, inclusive quando você zera o seu sequence? existe uma trigger configurada para isto?

Adriano_Nogueira
minha pojo  assim:

@Entity

@SequenceGenerator(name=usuario_sequence,sequenceName=usuario_sequence)

@Table(name=sco_usuarios,schema=public)

public class Usuario {

@Id

@Column(name=cd_usuario)

@GeneratedValue(strategy=GenerationType.SEQUENCE,generator=usuario_sequence)

int cdUsuario;

String login;

String senha;

@Column(name=id_usuario)

String idUsuario;
public Usuario() {
	super();
}

//getter’s and setter’s
isso mesmo, mesmo quando zerado o sequence ainda continua, qualquer outra classe tbm se for o primeiro objeto a ser persistido no banco ele já inicia com 100; e não tem nenhum tigger não!!!
obs: a persistencia é feita normalmente o único problema é que a sequencia está incrementando de 100 em 100 ao invéz de 1 em 1…

faelcavalcanti

cara não consigo enxergar qual o problema. isto ocorre quando você faz via código SQL em um cliente externo para o postgreeSQL ?
se a resposta for sim, existe alguma configuração a ser feita, neste caso verifique a documentação do postgreeSQL e refaça do zero!

se não é algum problema de junta!

Adriano_Nogueira

rsrsrsrsr a coisa aqui está é feia mesmo, não tem jeito. vou recomeçar do zero mesmo!!! gostaria de agradecer pela ajuda!!! obrigado!!!

icemagno

Uma dúvida me trouxe hoje a este post antigo através do google.
Então acho que ainda é válido.

A resposta está aqui:

http://stackoverflow.com/questions/12745751/hibernate-sequencegenerator-and-allocationsize

Criado 25 de setembro de 2008
Ultima resposta 28 de mar. de 2013
Respostas 6
Participantes 4