Question

J'essaie d'insérer de nouveaux objets dans une base de données Firebird avec NHibernate.

L'erreur "Impossible d'obtenir la valeur de séquence suivante [SQL: SQL non disponible]"

Voici la cartographie que j'utilise actuellement. Remarque ANML_EVNT est le nom du générateur que je souhaite utiliser.

    <id name="Id" column="ID" type="integer">
        <generator class="sequence">
            <param name="sequence">ANML_EVNT></param>   
        </generator>


    </id>
Était-ce utile?

La solution

Si vous cherchez toujours une réponse, voici comment je l'ai utilisée avec succès.

J'utilise le "natif" générateur car lors de l’ajout de la prise en charge de SQL Server à notre programme, la seule chose que je devais changer dans NHibernate était les types de générateur en "natif". car Firebird et SQL Server implémentent leur "identité par incrémentation automatique". colonnes différemment. Dans Firebird, il utilisait le générateur nommé et dans SQL Server, il ignorait la "séquence". paramètre et utilise l'incrémentation automatique intégrée.

Voici l'exemple de ce dont je parle:

<id name="Id" column="ID">
   <generator class="native">
      <param name="sequence">ANML_EVNT</param>
   </generator>
</id>

Cela dit, comme l’a répondu Gcores, tout ce qui semble ne pas correspondre à votre configuration est l’extra "> "" après ANML_EVNT.

Autres conseils

Ça a l'air bien. Le problème n'est pas le crochet final après ANML_EVNT, non?

 <id name="Id" column="ID" type="integer">
      <generator class="sequence">
          <param name="sequence">ANML_EVNT</param>       
      </generator>


</id>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top