Comment insérer de nouveaux éléments avec mise en veille prolongée?

J'ai une classe d'entité appelée Task qui est mappé dans hibernate.

Je suis en mesure de récupérer les éléments existants appartenant à cette classe correctement, donc je ne pense pas que ce soit un problème avec le mapping de la classe.

Cependant, lorsque j'essaie d'insérer un nouvel élément, j'obtiens l'erreur suivante:

org.hibernate.exception.SQLGrammarException: error performing isolated work
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
at org.hibernate.engine.transaction.internal.jdbc.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:96)
at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:131)
at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:58)
at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:422)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:114)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:680)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:672)

Dans le code suivant:

Task t = new Task();
t.title = "foo";
t.comment = "bar";
//snip... (every single field of task is given some value, except for id)
session.saveOrUpdate("Task", t); //This is the line on which the exception occurs

Si je ne fais pas saveOrUpdate(), puis la nouvelle tâche n'est pas inséré dans la base.

Ce que je fais mal?

Edit: session.save(task) ne fonctionne pas, soit

Je ne vois pas d'insérer ou de mettre à jour sql, la dernière question qu'elle montre avant de jeter l'exception est la suivante: Hibernate: select next_val as id_val from hibernate_sequence for update
Pouvez-vous essayer de session.enregistrer(t);
Juste essayé, il donne le même message d'erreur
Quelqu'un peut confirmer si public long id = 0; de l'identité est-elle autorisée?
J'ai changé à public long id, cependant il n'a pas d'effet.

OriginalL'auteur Click Upvote | 2014-03-18