2012-02-20 6 views
3

私のアプリは現在、独自のデータベースでユーザーを処理しています。 私は、自分のアプリや他のユーザーの管理を集中管理するCASアプリケーションを作成中です。このCASアプリは独自のデータベースを使用し、他のアプリはそのデータベースにアクセスします。 私はCASを含むすべてのアプリケーションに同じハイバネートエンティティ "User"を使用します。spring + hibernate - エンティティを別のデータソースにマッピングする

私の目標は、「ユーザー」エンティティを探すときにアプリケーションが「ローカル」dbか「cas」データベースを使用するかどうかを構成できるようにすることです。

実行時にこの設定を変更する必要はありません。それは春の文脈xmlの設定(または輸入のちょうど異なるセット)になることができます。

追加のセッションファクトリを使用したくありません。私はその道を歩こうとしましたが、web.xmlに1つのファクトリごとに1つのセッションビューフィルタをもっと定義する必要があることが分かったら固執しました。

いくつかの設定に基づいて、このエンティティ(および他の関連するもの)を別のデータソースからロードするように、単一のセッションファクトリを設定する方法を教えてください。

答えて

0

動的データソースルーティングについてはblog postをご覧ください。それはあなたを助けるかもしれません:-)

+0

すでにこれを見て、それが私を助けないと思った。彼らの例では、いくつかの設定に従って異なるデータベースからアイテム(またはユーザー...)を読み込みます。私はユーザー以外の多くのデータを持っており、そのデータのロードを別のデータソース/ dbにルーティングしたくありません。私は、ユーザーがいくつかの設定に応じて別のデータベースからロードすることを望みます。 – samz

1

あなたはHibernate 4でマルチテナントサポートを見ましたか? http://relation.to/Bloggers/MultitenancyInHibernate

+0

私は今それを見ました。パーティショニングに関する最初の例は、この問題を解決します。これは私に冬眠の破片を見るように導き、これが私を枯れて終わりに導く。それは冬眠シャードが幾分死んでいるように見えます。私はどのメイヴンレポでもプロジェクトを見つけることができません(中央とジョーズを試しました)。私はジャルバナでそのクラスを見つけることさえできません。これはhibernate.orgサイトからのみダウンロードできますが、私はMavenのローカルリポジトリのインストールを混乱させたくありません...私は彼らの2番目の提案、つまりハイバネートフィルターを試してみます。 – samz

+0

私は途中でhibernate 3.6.1-finalを使用しています。 – samz

+0

マルチテナンシー!=破片。これはHibernate 4で導入された新機能です。アップグレードできない場合は、これを無視してください。これは今日のHibernateで複数のデータソースを扱う "適切な"方法です。 – pap

関連する問題