Ich versuche, ziemlich einfaches Problem zu lösen. Ich möchte Verbindung zu 2 völlig verschiedenen Datenbanken herstellen (aber beide mysql). Jetzt habe ich versucht, dies zu lösen, indem ich mehrere Konfigurationsdateien erstellt habe und dann mehrere Sitzungen erstellt habe. Alles funktioniert, bis ich Beziehungen gefunden habe.NHibernate und mehrere Datenbanken
Ich habe 2 Tabellen in 2 Datenbanken:
db1 - News
db2 - News_Authors
I News zu db1 config und News_Authors zu db2 Config hinzugefügt. Wenn ich versuche, einfache Eins-zu-Eins-Beziehung Fehler zu bauen, ich erhalten:
An association from the table songs refers to an unmapped class: db1.News_Authors
News.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="project.News, project" table="news" lazy="false">
<id name="id" column="id" type="integer" length="11">
<generator class="native" />
</id>
<property name="title" type="String" length="255" />
<property name="authorid" type="integer" length="5" />
<one-to-one name="NewsAuthor" cascade="all-delete-orphan" lazy="proxy" column="authorid" unique="true" />
</class>
</hibernate-mapping>
News_Authors.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="project.News_Authors, project" table="news_authors" lazy="false">
<id name="id" column="id" type="integer" length="11">
<generator class="native" />
</id>
<property name="name" type="String" length="255" />
</class>
</hibernate-mapping>
config Ich habe dies hinzugefügt, um Zuordnungen zu ermöglichen. Wenn ich nun setzen beide in einer Config-Dateien, alles funktioniert ...
<mapping resource="project.News.hbm.xml" assembly="project" />
Wie konnte ich während der Sitzung auch die Schaffung „mitteilen“ nhibernate, dass ich mehrere Sitzungen haben? Oder sollte ich einen anderen Ansatz wählen?
Ich denke, es gibt eine Nuance, die von den Antworten verpasst hat. Sagen Sie, dass sich die Tabellen in zwei verschiedenen Datenbanken befinden und Sie die Daten datenbankübergreifend verknüpfen möchten? –
Ich glaube, genau das fragt der Fragesteller. Vielleicht ist das ein Job für NHibernate Shards? Ich habe es vorher noch nie benutzt und weiß nicht, ob Shards diese Art von Szenario unterstützt. –