Bonjour,
J'essaye de faire générer mes clés primaire par mon broker, mais sans succès...
Je suis entrain de migrer d'une base db2, où cela fonctionnait, à une base oracle.
Voila la déclaration de ma base :
Voila la déclaration de ma table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <jdbc-connection-descriptor jcd-alias="dbresources" default-connection="true" platform="Oracle10g" jdbc-level="2.0" batch-mode="true" jndi-datasource-name="java:comp/env/jdbc/toto_ds"> <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl"> <attribute attribute-name="autoNaming" attribute-value="true"/> </sequence-manager> </jdbc-connection-descriptor>
Et voila l'erreur que j'obtiens lors d'un broker.store(object);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <class-descriptor class="ma.classe" table="MaTable"> <field-descriptor name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true" sequence-name="S_MaTable"> </field-descriptor> <field-descriptor name="idUser" column="ID_USER" jdbc-type="VARCHAR" nullable="true" indexed="false"> </field-descriptor> </class-descriptor>
J'ai aussi essayé de changer mon sequence manager par :
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 14:58:37,165 ERROR [STDERR] org.apache.ojb.broker.PersistenceBrokerException: Error while try to assign identity value at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(Unknown Source) ... Caused by: org.apache.ojb.broker.util.sequence.SequenceManagerException: Could not grab next id, failed with This feature is not supported by this implementation Creation of new sequence failed with This feature is not supported by this implementation at org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl.getUniqueLong(Unknown Source) at org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueValue(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.assignAutoincrementSequences(Unknown Source) ... 51 more Caused by: java.lang.UnsupportedOperationException: This feature is not supported by this implementation at org.apache.ojb.broker.platforms.PlatformDefaultImpl.createSequenceQuery(Unknown Source) at org.apache.ojb.broker.platforms.PlatformDefaultImpl.createSequenceQuery(Unknown Source) at org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl.createSequence(Unknown Source) ... 54 more
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
mais j'ai aussi une erreur
Pour info la clé primaire de l'objet insérée est nulle, elle devrait normalement être remplacé par la valeur next de la séquence.
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 15:03:04,545 ERROR [STDERR] org.apache.ojb.broker.PersistenceBrokerException: Error while try to assign identity value at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(Unknown Source) ... Caused by: org.apache.ojb.broker.util.sequence.SequenceManagerException: Can't build new sequence at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequence(Unknown Source) at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUniqueLong(Unknown Source) at org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueValue(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.assignAutoincrementSequences(Unknown Source) ... 51 more Caused by: org.apache.ojb.broker.PersistenceBrokerException: Can't generate primary key values for given Identity org.apache.ojb.broker.util.sequence.HighLowSequence{S_MaTable} at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(Unknown Source) at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.getKeyValues(Unknown Source) at org.apache.ojb.broker.accesslayer.StatementManager.bindSelect(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getPlainDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSequence(Unknown Source) ... 55 more Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 ... 67 more
Merci de votre aide, parce que là, je galère...
Partager