Hibernate oracle 10g

kawtarinpt Messages postés 4 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 14:13
Menkouss Messages postés 1 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 19 mai 2012 - 19 mai 2012 à 16:47
 bonjour
lors de la connexion de ma base de données Oracle (10g) à l'application de gestion des hotels en utilisant l'outil hibernate, j'ai eu des problèmes à l'insertion de nouveau hotels.
les erreurs qui me donne sont les suivants:

Hibernate: insert into hotels (name, web_address, address, latitude, longitude) values (?, ?, ?, ?, ?)
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: could not insert: [metier.Hotels]
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1986)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
    at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:544)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:533)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:529)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:292)
    at $Proxy0.save(Unknown Source)
    at metier.getsionH.addHotels(getsionH.java:12)
    at metier.test.main(test.java:8)
Caused by: java.sql.SQLException: ORA-01400: impossible d'insérer NULL dans ("SYSTEM"."HOTELS"."ID")

    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1976)
    ... 22 more

si quelqu'un une solution qui me l'envoie.
merci d'avance.

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
21 avril 2009 à 14:24
Salut,

Pourtant l'erreur est on ne peut plus claire :
impossible d'insérer NULL dans ("SYSTEM"."HOTELS"."ID")

Donc soit tu génères tes propres valeurs puis les insére dans ta base de données, soit tu développe un trigger dans ta base oracle qui sera chargé de générer l'id.
0
kawtarinpt Messages postés 4 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 18:23
salut ,
merci pour la solution ; j'ai essayé d'insérer l'identificateur manuellement et cà marché. :-)
comment je peut le faire de manière automatique à l'aide de trigger ? j'ai besoin d'automatiser l'incrémentation.
merci encore.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
21 avril 2009 à 18:33
Fais une recherche sur google ou sur notre site dédié à SQL (sqlfr) : la création d'un trigger pour cà avec oracle est un sujet "classique" sur les forums de prog.
0
kawtarinpt Messages postés 4 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 19:22
Merci beaucoup :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Menkouss Messages postés 1 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 19 mai 2012
19 mai 2012 à 16:47
bonjour les amis je suis débutant en hibernate et je ne sais pas comment faire la connexion avec ma base oracle 10g,quelqu'un peut m'aider
merci
0
Rejoignez-nous