Hibernate + annotation + postgree + sequence?

pessoal estou usando o hibernate com anotações no postgree 8.1, la tenho uma tabela usuario com o campo id do tipo long que usar uma sequence para auto inclrementa de 1 em 1, mas o hibernate não esta fazendo isto, ele não gera um id automativo, como comfiguro ele?

Sua annotation está assim:

aorocha,

Você pode estar utilizando uma sequence criada no próprio PostgreSQL.
Sabendo o nome da sequence a ser utilizada, você pode estar adicionando tag generator dentro da sua tag id, como mostra o exemplo.

<id column="id" name="identificador"> //1 <generator class="sequence"> //2 <param name="sequence">seq_modulo</param> //3 </generator> </id>
Na linha 1 temos no campo column o valor correspondente a coluna da tabela especificada aonde se deseja sincronizar o que consta no campo name. Ou seja, o que existir na coluna id será atribuído ao atributo identificador.
Na linha 2 temos a declaração de que esse identificador é do tipo “sequence”.
Na linha 3 temos o parâmetro de nome sequence e o nome da sequence que fornecerá o próximo valor para o identificador.

Espero ter ajudado. Abraço!

estou tendo este erroorg.hibernate.AnnotationException: Unknown Id.generator: auto_usuariorequisicao at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1723) at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1170) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:699) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:353) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:265) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1205) at ApplicationManager.init(ApplicationManager.java:39) at org.mentawai.core.Controller.initApplicationManager(Controller.java:152) at org.mentawai.core.Controller.init(Controller.java:100) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) at org.apache.catalina.core.StandardHost.start(StandardHost.java:718) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:709) at org.apache.catalina.startup.Catalina.start(Catalina.java:551) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432) ERROR [/requisicao]: Servlet /requisicao threw load() exception [13:32:18.156] org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3919) javax.servlet.ServletException: Error loading application manager: ApplicationManager at org.mentawai.core.Controller.initApplicationManager(Controller.java:169) at org.mentawai.core.Controller.init(Controller.java:100) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) at org.apache.catalina.core.StandardHost.start(StandardHost.java:718) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:709) at org.apache.catalina.startup.Catalina.start(Catalina.java:551) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

tinha feito o que o lap_junior, sitou mas da esse erro.

alguem pode me ajudar?

Gelera a minha classe está com a anotação de id com sequence… mesmo assim não funciona a parada…
Alguém pode me ajudar.
estou usando bd postgre

Valeu :frowning:

[quote]Exception in thread “main” java.lang.ExceptionInInitializerError
at carro.regra.testes.TesteHibernate.teste(TesteHibernate.java:24)
at carro.regra.testes.TesteHibernate.main(TesteHibernate.java:20)
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: seq_casa
at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1595)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1065)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:629)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:276)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:210)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1156)
at carro.regra.testes.HibernateUtility.(HibernateUtility.java:22)[/quote]

coloca isto na classe:

@SequenceGenerator(name = "SEQ_CLOG", sequenceName = "SEQ_CLOG")

e isto no campo:

@Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_CLOG")

Urubatan…
Cara mais uma vez vc consegui mostrar a luz no fim do túnel…
Valeu CAMARADA… muito obrigado o esquema funcionou certinho…

Muito obrigado mesmo.

:smiley:

estou tendo o mesmo problema só que estou usando o Oracle, quando usava o postgree rodava legal, mas com o oracle, levantou a mesma excecao.

alguem sabe o q eh?

Estou com o mesmo problema, sendo que eu tenho uma classe pai onde todos herdam dessa classe
e quando tento inserir no banco (Postgree) da o erro

org.hibernate.AnnotationException: Unknown Id.generator: SEQ

Ai vai minhas classes


@MappedSuperclass
public class EntidadeBase implements Serializable{
	
	private static final long serialVersionUID = -4864986720166453779L;

	@Id
	@Column(name = "ID")
	@GeneratedValue(strategy=GenerationType.IDENTITY, generator="SEQ")
	private Long identificador;

	@Column(name = "DTHRCADASTRO", nullable = false, updatable = false)
	@Temporal(TemporalType.TIMESTAMP)
	private Date dtHrCadastro;

                ...
@Entity
@Table(name = "AUXESP_CATEGORIA")
@SequenceGenerator(name = "SEQ", sequenceName = "AUXESP_SEQ_CATEGORIA")
public class Categoria extends EntidadeBase {

	private static final long serialVersionUID = -1846852918546501897L;

	@Column(name = "NOME", nullable = false)
	private String nome;

	@Column(name = "DESCRICAO")
	private String descricao;

ja tentei GenerationType.IDENTITY, GenerationType.AUTO e GenerationType.SEQUENCE e nada funciona.
A Sequence esta criada no banco…

alguem me ajuda por favor.

Obrigado

AlexandreNeves estou com o mesmo problema que vc passou neste tópico velho, se puder postar como vc resolveu agradeço, Abç!