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 :
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>
Voila la déclaration de ma table :
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>
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
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
J'ai aussi essayé de changer mon sequence manager par :
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
mais j'ai aussi une erreur
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
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.

Merci de votre aide, parce que là, je galère...