Bonjour a tous
voila mon probleme:
J'ai créé une table declaration sur postgres :
je vous envoie ma classe bean et le .hbm.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 CREATE TABLE declaration ( id_declaration int8 NOT NULL DEFAULT nextval('seq_declaration'::text), ninea char(10) NOT NULL, id_user int8 NOT NULL, num_fact varchar(10), date_declaration date, date_imposition varchar(50), date_cotisation_deb varchar(50), date_cotisation_fin varchar(50), montant_total float8, ae_taxable float8, ae_non_taxable float8, ar_non_taxable float8, ar_taxable_exo float8, ar_suspensiontva float8, total_mnt_nstva float8, plps float8, a_precomptetva float8, mnt_total_taxable float8, mnt_tva_brute float8, precomptetva float8, acompte float8, imput_cheq_ddi float8, total_avance float8, deduc_moi float8, credit_tva_moi_prec float8, total_deduc float8, solde_total_exig float8, credit_tva_report float8, mnt_rembours float8, CONSTRAINT pk_declaration PRIMARY KEY (id_declaration), CONSTRAINT fk_declaration_declaration_entrepri FOREIGN KEY (ninea) REFERENCES entreprise (ninea) ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT fk_declaration_declaration_user FOREIGN KEY (id_user) REFERENCES utilisateur (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT )
Ensuite dans mon action lorsque j'appel la metode pour enregistrer il me renvoie cette erreur a la console:
INFO : DeclarationDao.java -> Entree dans methode insererDeclaration la classe DeclarationDao
Hibernate: select nextval ('seq_declaration')
Hibernate: select entreprise_.ninea, entreprise_.nom_entreprise as nom2_1_, entreprise_.sigle as sigle1_, entreprise_.forme as forme1_, entreprise_.compte as compte1_, entreprise_.adresse as adresse1_, entreprise_.rue as rue1_, entreprise_.quartier as quartier1_, entreprise_.localite as localite1_, entreprise_.bp as bp1_, entreprise_.renseigne as renseigne1_, entreprise_.extenso as extenso1_, entreprise_.activite as activite1_, entreprise_.tel as tel1_, entreprise_.num_secu as num15_1_, entreprise_.num_registre as num16_1_, entreprise_.email as email1_, entreprise_.description as descrip18_1_, entreprise_.adresse_stable as adresse19_1_, entreprise_.comptable as comptable1_, entreprise_.bp_comptable as bp21_1_, entreprise_.tel_comptable as tel22_1_, entreprise_.forme_societe as forme23_1_, entreprise_.profession as profession1_, entreprise_.unite_secteur as unite25_1_, entreprise_.centre_fiscal as centre26_1_, entreprise_.centre_perception as centre27_1_ from entreprise entreprise_ where entreprise_.ninea=?
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.tva.bo.Utilisateur
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:99)
at org.hibernate.type.EntityType.isDirty(EntityType.java:216)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:412)
at org.hibernate.persister.entity.BasicEntityPersister.findDirty(BasicEntityPersister.java:2538)
at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:344)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:108)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:190)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:70)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at com.tva.dao.imp.DeclarationDao.insertDeclaration(DeclarationDao.java:46)
at com.tva.manager.imp.DeclarationMg.saveDeclaration(DeclarationMg.java:61)
at com.tva.struts.action.declaration.EnregistrerDeclarationAction.executeAction(EnregistrerDeclarationAction.java:152)
at com.tva.struts.action.ActionBase.execute(ActionBase.java:143)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at com.tva.struts.servlets.ServletBase.doPost(ServletBase.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
voici ma classe DeclarationDao.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class DeclarationDao extends HibernateDaoSupport implements IDeclarationDao { protected Log logger = LogFactory.getLog(DeclarationDao.class); protected static final String hqlRequest = " from Declaration as declaration"; ConstantePresentation constante = new ConstantePresentation(); public void insertDeclaration(Declaration declaration) { logger.info("Entree dans methode insererDeclaration la classe DeclarationDao"); Session session = this.getSessionFactory().openSession(); try{ Transaction tx = session.beginTransaction(); session.save(declaration); tx.commit(); }catch (Exception e){ e.printStackTrace(); logger.error("Erreur lors de l'insertion d'une declaration"); }finally{ session.close(); } } /* (non-Javadoc) * @see com.tva.dao.interfaces.IDeclarationDao */ public void saveOrUpdateDeclaration(Declaration declaration) { logger.info("Entree dans la methode saveDeclaration la classe DeclarationDao"); Session session = this.getSessionFactory().openSession(); try{ Transaction tx = session.beginTransaction(); session.saveOrUpdate(declaration); //getHibernateTemplate().save(declaration); tx.commit(); }catch (Exception e){ e.printStackTrace(); logger.error("Erreur lors de la sauvegarde d'une declaration"); }finally{ session.close(); } } }
Partager