Bonjour,
J'obtiens parfois cet erreur :
Quote:
ex = {"could not initialize collection: [FeedleWebservice.Subscriber.SubscriptionsList#2]"}
InnerException = {"Invalid column name 'Title'."}
Malgré tout, je ne pense pas que l'erreur vienne d'un problème de nommage de colonne.
J'utilise NHibernate dans un Webservice, et, peut-être est-ce une erreur, chaque utilisateur qui se connecte au Webservice s'identifie, et une Session hibernate différente est créée pour chacun. Est-ce déjà la bonne solution ?
Le fonctionnement de mon programme.
Il y a une classe Subscriber, une classe Feed et une classe News.
Un Subscriber peut s'inscrire à une Feed (il y a une relation many-to-many entre les deux pour l'instant, comme vous le verrez dans le fichier de mapping). Ensuite, à une et une seule Feed y appartiennent des News. J'ai aussi une table de concordance entre Subscriber et News pour indication de lecture.
Je pense qu'il y a un problème avec mon fichier de mapping (remarquez au passage qu'il est généré par Mapping.Attributes) au niveau de la liaison many-to-many.
Code:
<?xml version="1.0" encoding="utf-8"?>
<!--Generated from NHibernate.Mapping.Attributes on 2007-01-03 16:59:31Z.-->
<hibernate-mapping default-access="field.camelcase-underscore" xmlns="urn:nhibernate-mapping-2.0">
<class name="FeedleWebservice.News, FeedleWebservice" table="News">
<id name="Id">
<generator class="native" />
</id>
<property name="Title" not-null="true" />
<property name="Description" length="16384" not-null="true" />
<property name="Link" length="512" not-null="true" />
<property name="PublishedOn" not-null="true" />
<bag name="HasBeenReadList" table="ReadStatus" fetch="join" cascade="all">
<key column="FK_News" />
<many-to-many class="FeedleWebservice.Subscriber, FeedleWebservice" column="FK_Subscriber" />
</bag>
</class>
<class name="FeedleWebservice.Subscriber, FeedleWebservice" table="Subscriber">
<id name="Id">
<generator class="native" />
</id>
<property name="Login" not-null="true" />
<property name="Password" not-null="true" />
<property name="Email" not-null="true" />
<bag name="SubscriptionsList" table="Subscription" fetch="join" cascade="all" order-by="Title">
<key column="FK_Subscriber" />
<many-to-many class="FeedleWebservice.Feed, FeedleWebservice" column="FK_Feed" />
</bag>
<bag name="HasReadList" table="ReadStatus" fetch="join" cascade="all">
<key column="FK_Subscriber" />
<many-to-many class="FeedleWebservice.News, FeedleWebservice" column="FK_News" />
</bag>
</class>
<class name="FeedleWebservice.Feed, FeedleWebservice" table="Feed">
<id name="Id">
<generator class="native" />
</id>
<property name="LastUpdate" not-null="true" />
<property name="Title" not-null="true" />
<property name="Description" not-null="true" />
<property name="Url" not-null="true" />
<bag name="NewsList" fetch="join" cascade="all" order-by="PublishedOn">
<key column="FK_Feed" />
<one-to-many class="FeedleWebservice.News, FeedleWebservice" />
</bag>
<bag name="SubscriptionsList" table="Subscription" fetch="join" cascade="all">
<key column="FK_Feed" />
<many-to-many class="FeedleWebservice.Subscriber, FeedleWebservice" column="FK_Subscriber" />
</bag>
</class>
</hibernate-mapping>
En fait, quand un seul "Subscriber" se connecte, et s'inscrit à des feeds, ça fonctionne (enfin à peu près je crois !). Les problèmes surviennent quand il y a un deuxième "Subscriber" qui s'inscrit aux feeds aussi... et là j'obitnes par exemple cet erreur de colonne, sans aucun rapport... :(
Je vous remercie de votre aide !