0

私たちのアプリケーションには非常に大きなデータがあり、データベース層 (ストアド プロシージャ) でビジネス ロジック (集計) を実行したいと考えています。

Liferay は、ビジネス ロジックをビジネス レイヤー (多層アーキテクチャを持つ) に配置することを好みます。

ビジネス ロジックにストアド プロシージャを使用すると、どのような影響がありますか?

LiferayもHibernateを使用しているため、この場合にあまり価値がない場合、この場合に休止状態をバイパスする方法はありますか?

4

2 に答える 2

1

Liferay がアプリケーション コードでビジネス ロジックを実行するという事実は、同じことをしなければならないという意味ではなく、アプリケーションのアーキテクチャは完全にあなた次第です。

(これは、アプリケーション データが Liferay のデータを参照していないことを前提としています)

于 2012-08-09T16:34:33.667 に答える
1

Liferay がアプリケーション コード レベル (高レベル) でビジネス ロジックを実行するのには理由があります。

  1. この方法では、ポータルはデータベースに依存しないため、基盤となるデータベースについてあまり考慮せずにデプロイできます。
  2. すべてのデータベースがストアド プロシージャをサポートしているわけではありません。そのため、複数のデータベースをサポートするために、コードをストアド プロシージャに含めることはできません。
  3. ポータルはほとんどがコンテンツ駆動型であり、データ集約型ではありません。

他の理由があるかもしれませんし、彼らが従うかもしれない他の哲学があるかもしれませんが、これが私が今考えることができるものです.

さて、問題は使えるか使えないか?

frant.hartmが言うように、それは完全にあなた次第ですそれは、要件と、アーキテクチャの設計、維持、強化の計画方法によって異なります。

また、注意事項として、Liferay が新しいバージョンのデータベース アーキテクチャを変更する可能性があるため、Liferay のデータベース テーブルをストアド プロシージャから直接使用しないことをお勧めします。そのため、アップグレード手順が複雑になる可能性があります。

この質問はライフレイとはあまり関係がないと思います。そのため、決定に役立つリンクがいくつかあります。

  1. ストアド プロシージャのビジネス ロジックの賛成/反対の引数。最初のいくつかの回答は、この方向への良い指針です。
  2. ビジネスロジックをストアドプロシージャに入れるかどうか
  3. コード ジェネレーター vs. ORM vs. ストアド プロシージャ

この場合、あまり価値がない場合、この場合に休止状態をバイパスする方法はありますか。

値が追加されない場合は、休止状態をバイパスする独自のカスタム ポートレットに JDBC を使用できます。JDBC を使用するために設定する特別なことは何もありません。それは同じ古き良きものです:-)

これがあなたを前向きな方向に導くことを願っています。

于 2012-08-13T08:31:15.277 に答える