1

OFBizアプリケーションのさまざまな部分をさまざまなデータベースに接続できますか?例:-PartyManagement=>データベース1に接続します-CatalogManagement=>データベース2に接続します-Ofbizアプリケーションの同じインスタンスで動作します。私の計画は、OFbizでテナントを作成し、OFBizのさまざまな部分をテナントに接続し、他の部分をデフォルト/元のOFBizデータベースに接続することです。

4

1 に答える 1

4

短い答えははい、できます。長い答えは、エンティティ レベルで既存のアプリ間の依存関係があるため、おそらくそうしたくないということです。

まず、すべてがどのように組み合わされるかを理解する必要があります。Ofbiz エンティティは通常、entitymodel.xml で定義され、ofbiz-component.xml で参照されます。既存のコンポーネントのほとんどは、このレベルの構成しかありません。このような構成では、エンティティは「org.ofbiz」と呼ばれるデフォルト グループに属します。次に、entityengine.xml で、グループがデータソースに割り当てられます。

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

これは、テーブルがグループに割り当てられ、グループがデータベースに割り当てられる方法です。

したがって、コンポーネントからすべてのエンティティを新しいデータベースに割り当てるには、次のことを行う必要があります。

  1. 各コンポーネントで新しいエンティティ グループ定義を作成し、エンティティをそのグループに割り当てます。<entity-group group="org.ofbiz.tenant" entity="Tenant"/>

  2. ofbiz-component.xml からグループ定義を参照 <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/>

  3. entityengine.xml で、新しいグループを別のデータソースに割り当てます。 <group-map group-name="org.ofbiz.tenant" datasource-name="localpostgres"/>

例として、olap とテナント グループを見てください。

新しいコンポーネントを作成している場合、または特別な目的のフォルダー内のコンポーネントに対してそれを行いたい場合は、上記の手順を実行して別のデータベースにエンティティを含めることができます。フレームワークまたはアプリケーション フォルダーの既存のコンポーネント (前述のコンテンツ コンポーネントなど) に対してこれを行う場合、コンポーネントには依存関係 (エンティティ関係) があり、一部のエンティティを別のデータベースに移動するとそれが壊れることに気付くでしょう。

于 2013-03-24T12:50:01.323 に答える