私はかなり簡単な問題を解決しようとしています。私は2つの全く異なるデータベースへの接続を確立したい(しかしどちらもmysql)。今私は、複数の設定ファイルを作成し、複数のセッションを作成することでこれを解決しようとしました。私は関係に達するまですべてが働きます。 - ニュースNHibernateと複数のデータベース
DB2 - News_Authors
私はDB1の設定とDB2の設定にNews_Authorsにニュースを追加しました
DB1 :
は、私が2つのデータベース内の2つのテーブルを持っています。私は、単純な1対1の関係のエラーを構築しようとした際、私が受け取る:
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>
設定 マッピングを有効にするためにこれを追加しました。私は...すべての作品1つの設定ファイルに
<mapping resource="project.News.hbm.xml" assembly="project" />
を両方を設定した場合は今、どのように私は、セッションの作成時にも、私は複数のセッションを持ってNHibernateのを「通知」だろうか?あるいは、私はまったく別のアプローチを選ぶべきですか?
私が答えでは見逃さだニュアンスがあると思います。テーブルが2つの異なるデータベースにあり、データベース間でデータを結合したいと言っていますか? –
私はそれがまさに尋問者が求めているものだと信じています。おそらく、これはNHibernate Shardsの仕事ですか? Shardsがこの種のシナリオをサポートしているかどうかは以前は一度も知りませんでした。 –