SequenceGenerator Hibernate + PostgreSQL [RESOLVIDO]

daew galera, estou com um problema para utilizar o sequence generator, tenho as sequence definidas no bd, porem não consigo fazer o hibernate utiliza-las

Estado.java

[code]@Entity
@Table(name="“Estados”")
public class Estados implements Serializable {

@Id
@Column(name="est_codigo")
@SequenceGenerator(name="Estado_Seq", sequenceName="Estado_est_codigo_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO, generator="Estado_Seq")
private int estCodigo;
@Column(name="est_nome")
private String estNome;
@Column(name="est_abreviatura")
private String estAbreviatura;

[/code]

Metodo onde esta sendo inserido um novo estado no BD

[code]public static void main(String[] args) {

	EstadosService estService = new EstadosService();
	Estados est = new Estados();
	est.setEstCodigo(1);
	est.setEstNome("Rio Grande do Sul");
	est.setEstAbreviatura("RS");
	estService.insert(est);
}[/code]

EstadosService.java

[code]public class EstadosService extends ServiceImplements<Estados> {

public EstadosService() {
	super(Estados.class);
}

}[/code]

Metodo insert do arquivo ServiceImplements

public T insert(T obj) { initTransaction(); try { entityManager.persist(obj); commitTransaction(); } catch (Exception e) { logger.error("Erro ao inserir objeto:", e); rollbackTransaction(); } return null; }

Se as linhas @SequenceGenerator e @GeneratedValue do Estado.java ficam comentadas e passo um codigo diferente a cada inserção funciona normalmente, porem com o hibernate controlando a geração dos codigos não funciona

abraços

Cara,

Aqui onde trabalho, temos a seguinte classe:

[code]
@Entity
@Table(name = “pessoa”, schema = “public”)
@SequenceGenerator(name=“PESSOA_SEQ”, sequenceName=“pessoa_id_pessoa_seq”, allocationSize=1)
public class Pessoa implements java.io.Serializable {

private static final long serialVersionUID = 2009100211L;
private Integer idPessoa;

@Id
@Column(name = "id_pessoa", unique = true, nullable = false, length = 14)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="PESSOA_SEQ")
public Integer getIdPessoa() {
	return this.idPessoa;
}

}[/code]

Acho q está faltando a seguinte anotação na sua classe:
@SequenceGenerator(name=“Estado_Seq”, sequenceName=“xxx”, allocationSize=1)

Dê uma verificada nisso.

[]'s

A anotação @sequencegenerator esta ali, porem acima do atributo, vou coloca-lo acima da classe, vai que seja a localização, depois posto o result

vlw pela dica

[]'s

Não deu certo brother … não retorna erro e nem grava no banco, a unica coisa q retorna é

[quote]log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.[/quote]

segue Estado.java

[code]@Entity
@Table(name="“Estados”")
@SequenceGenerator(name=“Estado_Seq”, sequenceName=“Estado_est_codigo_seq”, allocationSize=1)
public class Estados implements Serializable {

@Id
@Column(name="est_codigo")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Estado_Seq")
private int estCodigo;
@Column(name="est_nome")
private String estNome;
@Column(name="est_abreviatura")
private String estAbreviatura;[/code]

[]'s

Resolvido, apenas troquei o tipo de strategy na anotação @GeneratedValue, de AUTO e SEQUENCE que havia utilizado para IDENTITY, ficando assim a classe Estado.Java

[code]@Entity
@Table(name="“Estados”")
@SequenceGenerator(name=“Estado_Seq”, sequenceName=“Estado_est_codigo_seq”, allocationSize=1)
public class Estados implements Serializable {

@Id
@Column(name="est_codigo")
@GeneratedValue(strategy=GenerationType.IDENTITY, generator="Estado_Seq")
private int estCodigo;
@Column(name="est_nome")
private String estNome;
@Column(name="est_abreviatura")
private String estAbreviatura;[/code]

mesmo assim vlw pela ajuda