J'utilise Hiberbnate 3.1.3. J'ai un mappage comme ci-dessous et quand j'essaie d'insérer un enregistrement dans le TEST_TABLE, j'obtiens une exception: 'Exception dans le fil "principal" org.hibernate.exception.SQLGrammarException: impossible d'extraire la valeur initiale pour le générateur d'incrément'Hibernate: Générateur d'ID en utilisant increment et Oracle Schema
<class name="com.test.app.to.TestTable" table="TEST_TABLE" schema="TEST">
<id name="testId" type="long">
<column name="TEST_ID" precision="12" scale="0" />
<generator class="increment"></generator>
</id>
</class>
J'ai le schéma par défaut défini comme ci-dessous dans le fichier cfg.xml car j'ai besoin d'utiliser aussi des tables de OTHER_SCHEMA dans mon application.
<property name="hibernate.default_schema">OTHER_SCHEMA</property>
Dans le cas ci-dessus, il semble être un bug Hibernate comme une lecture à l'aide d'un objet TestTable fonctionne très bien et utilise correctement le schéma « TEST », mais le '<generator class="increment"></generator>'
ne pas utiliser le schéma « TEST » mais utilise la par défaut 'OTHER_SCHEMA' pour obtenir l'identifiant maximum. La requête générée pour ID max lit comme suit:
Hibernate: select max(TEST_ID) from OTHER_SCHEMA.TEST_TABLE
Je ne suis pas en mesure de spécifier un schéma pour le générateur et il n'utilise pas le schéma = attribut « TEST » de la classe que j'attendre à utiliser .
Comment ce problème peut-il être résolu?
Cela m'a beaucoup aidé. Merci. – ozeray