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
[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.
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ç!