Hello les gens,
Comment définit on généralement une méthode create (sur l'interface home) et la méthode ejbCreate (sur le bean) quand la clé de la table est de type identity ?
Lorsque je désire créer un enregistrement sur la table, je me prends un:
Voici un extrait de mon code:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Caused by: java.sql.SQLException: A value cannot be specified for column "ID" which is defined as GENERATED ALWAYS. DSRA0010E: Etat SQL = 428C9, Code d'erreur = -798 at com.ibm.db2.jcc.b.id.e(id.java:1640) at com.ibm.db2.jcc.b.id.a(id.java:1229) at com.ibm.db2.jcc.c.fb.h(fb.java:149) at com.ibm.db2.jcc.c.fb.a(fb.java:43) at com.ibm.db2.jcc.c.s.a(s.java:30) at com.ibm.db2.jcc.c.wb.g(wb.java:152) at com.ibm.db2.jcc.b.id.n(id.java:1209) at com.ibm.db2.jcc.b.jd.eb(jd.java:1779) at com.ibm.db2.jcc.b.jd.a(jd.java:2232) at com.ibm.db2.jcc.b.jd.W(jd.java:537) at com.ibm.db2.jcc.b.jd.executeUpdate(jd.java:520) at com.ibm.ws.rsadapter.cci.WSResourceAdapterBase.pmiExecuteUpdate(WSResourceAdapterBase.java:715) at com.ibm.ws.rsadapter.cci.WSResourceAdapterBase.executeUpdate(WSResourceAdapterBase.java:584) at com.laOuJeBosse.leProjet.ejb.entity.websphere_deploy.DB2UDBNT_V8_1.FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.Create(FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.java:238) at com.laOuJeBosse.leProjet.ejb.entity.websphere_deploy.DB2UDBNT_V8_1.FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.execute(FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.java:872) at com.ibm.ws.rsadapter.cci.WSInteractionImpl.execute(WSInteractionImpl.java:538) at com.ibm.ws.rsadapter.cci.WSRelationalRAAdapter.executeCreate(WSRelationalRAAdapter.java:375) at com.ibm.ws.ejbpersistence.dataaccess.DataAccessRequestImpl.execute(DataAccessRequestImpl.java:191) ... 16 more ---- Begin backtrace for Nested Throwables com.ibm.db2.jcc.b.SqlException: An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-798", SQLSTATE "428C9" and message tokens "ID". at com.ibm.db2.jcc.b.id.e(id.java:1640) at com.ibm.db2.jcc.b.jd.a(jd.java:1716) at com.ibm.db2.jcc.c.fb.a(fb.java:200) at com.ibm.db2.jcc.c.fb.b(fb.java:88) at com.ibm.db2.jcc.c.s.b(s.java:60) at com.ibm.db2.jcc.c.xb.d(xb.java:293) at com.ibm.db2.jcc.b.jd.bb(jd.java:1709) at com.ibm.db2.jcc.b.jd.eb(jd.java:1780) at com.ibm.db2.jcc.b.jd.a(jd.java:2232) at com.ibm.db2.jcc.b.jd.W(jd.java:537) at com.ibm.db2.jcc.b.jd.executeUpdate(jd.java:520) at com.ibm.ws.rsadapter.cci.WSResourceAdapterBase.pmiExecuteUpdate(WSResourceAdapterBase.java:715) at com.ibm.ws.rsadapter.cci.WSResourceAdapterBase.executeUpdate(WSResourceAdapterBase.java:584) at com.laOuJeBosse.leProjet.ejb.entity.websphere_deploy.DB2UDBNT_V8_1.FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.Create(FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.java:238) at com.laOuJeBosse.leProjet.ejb.entity.websphere_deploy.DB2UDBNT_V8_1.FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.execute(FBL_COMPUT_ACFEE_FEES_FACTBeanFunctionSet_76811a3a.java:872) at com.ibm.ws.rsadapter.cci.WSInteractionImpl.execute(WSInteractionImpl.java:538) at com.ibm.ws.rsadapter.cci.WSRelationalRAAdapter.executeCreate(WSRelationalRAAdapter.java:375) at com.ibm.ws.ejbpersistence.dataaccess.DataAccessRequestImpl.execute(DataAccessRequestImpl.java:191) at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeCreate(ConcreteBeanStatefulInstanceExtensionImpl.java:1999) at com.ibm.ws.ejbpersistence.beanextensions.CBNotExistState.ejbCreate(CBNotExistState.java:38) at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.ejbPostCreate(ConcreteBeanStatefulInstanceExtensionImpl.java:331) at com.laOuJeBosse.leProjet.ejb.entity.ConcreteFBL_COMPUT_ACFEE_FEES_FACT_76811a3a.ejbPostCreate(ConcreteFBL_COMPUT_ACFEE_FEES_FACT_76811a3a.java:145) at com.laOuJeBosse.leProjet.ejb.entity.EJSCMPFBL_COMPUT_ACFEE_FEES_FACTHomeBean_76811a3a.create_Local(EJSCMPFBL_COMPUT_ACFEE_FEES_FACTHomeBean_76811a3a.java:30) at com.laOuJeBosse.leProjet.ejb.entity.EJSLocalCMPFBL_COMPUT_ACFEE_FEES_FACTHome_76811a3a.create(EJSLocalCMPFBL_COMPUT_ACFEE_FEES_FACTHome_76811a3a.java:86) at com.laOuJeBosse.leProjet.ejb.session.GestionCommissionBean.computeFeesOnAccount(GestionCommissionBean.java:131) at com.laOuJeBosse.leProjet.ejb.session.EJSRemoteStatelessGestionCommission_411998cc.computeFeesOnAccount(EJSRemoteStatelessGestionCommission_411998cc.java:28) at com.laOuJeBosse.leProjet.ejb.session._GestionCommission_Stub.computeFeesOnAccount(_GestionCommission_Stub.java:270) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.quartz.jobs.ee.ejb.EJBInvokerJob.execute(EJBInvokerJob.java:226) at org.quartz.core.JobRunShell.run(JobRunShell.java:213) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) ---- Begin backtrace for Nested Throwables
Interface home:
Mon bean:
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 ... /** * Creates an instance from a key for Entity Bean: * FBL_COMPUT_ACFEE_FEES_FACT */ public com.laOuJeBosse.leProjet.ejb.entity.FBL_COMPUT_ACFEE_FEES_FACTLocal create( java.lang.Long id) throws javax.ejb.CreateException; public com.laOuJeBosse.leProjet.ejb.entity.FBL_COMPUT_ACFEE_FEES_FACTLocal create( String TICKET, Timestamp INSERT_TIME, String F_BPID, Long F_ACNO, String F_ISIN, String F_GENDATE, String F_OTHRDATE, String F_NAME, String F_TYPE, String BILLINGDATE, String UPLOADER, String COMMITTER, Character REJECTED, String CAUSE, String RANGE_TYPE, Integer RANGE_LEVEL, Integer RANGE_TOKEN, Double FEE_AMOUNT, Character ALLFEES_LOADED, String ALLFEES_LOADER) throws javax.ejb.CreateException; ...
Je sais que cette version des ejb est pour le moins très "lourde", j’espère seulement trouver quelqu'un qui puisse m'aider.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57 ... /** * ejbCreate */ public java.lang.Long ejbCreate(java.lang.Long id) throws javax.ejb.CreateException { // setId(id); c'est ALWAYS GENERATED on a dit! return null; } /** * ejbPostCreate */ public void ejbPostCreate(java.lang.Long id) throws javax.ejb.CreateException { } public void ejbPostCreate(String TICKET, Timestamp INSERT_TIME, String F_BPID, Long F_ACNO, String F_ISIN, String F_GENDATE, String F_OTHRDATE, String F_NAME, String F_TYPE, String BILLINGDATE, String UPLOADER, String COMMITTER, Character REJECTED, String CAUSE, String RANGE_TYPE, Integer RANGE_LEVEL, Integer RANGE_TOKEN, Double FEE_AMOUNT, Character ALLFEES_LOADED, String ALLFEES_LOADER) throws javax.ejb.CreateException { } public java.lang.Long ejbCreate(String TICKET, Timestamp INSERT_TIME, String F_BPID, Long F_ACNO, String F_ISIN, String F_GENDATE, String F_OTHRDATE, String F_NAME, String F_TYPE, String BILLINGDATE, String UPLOADER, String COMMITTER, Character REJECTED, String CAUSE, String RANGE_TYPE, Integer RANGE_LEVEL, Integer RANGE_TOKEN, Double FEE_AMOUNT, Character ALLFEES_LOADED, String ALLFEES_LOADER) throws javax.ejb.CreateException { setTicket(TICKET); setInsert_time(INSERT_TIME); setF_bpid(F_BPID); setF_acno(F_ACNO); setF_isin(F_ISIN); setF_gendate(F_GENDATE); setF_othrdate(F_OTHRDATE); setF_name(F_NAME); setF_type(F_TYPE); setBillingdate(BILLINGDATE); setUploader(UPLOADER); setCommitter(COMMITTER); setRejected(REJECTED); setCause(CAUSE); setRange_type(RANGE_TYPE); setRange_level(RANGE_LEVEL); setRange_token(RANGE_TOKEN); setFee_amount(FEE_AMOUNT); setAllfees_loaded(ALLFEES_LOADED); setAllfees_loader(ALLFEES_LOADER); return null; ...
Merci pour toutes vos contributions.
Partager