3

私はアーキテクチャのシナリオを持っています。あなたの意見を得るために議論したいと思います。

この2つから選択できます(これは私に課せられた制約です)

  1. EJB3+JPA を使用 - Spring/Hibernate なし
  2. POJO + JDBC - 再び Spring/Hibernate なし

すべて統合する必要がある一連の Web アプリケーション (イントラネットのみ) があります。データベース レベルでは、3 つから 4 つの Oracle データベース (およびデータベースごとに約 40 から 50 のテーブル) があります。一部のアプリケーションは、クエリによっては複数のデータベースと対話する場合があります。同時ユーザー数は 100 未満です。アプリケーションあたりのユーザー/オーディエンスは、10 から 6000 (最大) の範囲です。

すべてのアプリケーションは 1 つのサーバーにデプロイされ、データベースとサーバーが同じマシン上にある可能性が非常に高くなります。

ほとんどのユース ケースは CRUD ベース (ORM に適したドメイン モデルを提供できるものもあれば、そうでないものもあります) であり、一部のビジネス プロセス、自動化されたジョブなどがあります。一部のアプリケーションについては、将来 SAP との統合が必要になる可能性があります。

この場合、EJB3 はアプリケーションをよりスケーラブルにするか、それとも単純に複雑にするだけだと思いますか? 私が POJO を使用して設計する場合、これを適用することはできますか? Spring と Hibernate のロビー活動を試みましたが、成功しませんでした。

詳細が必要な場合はお知らせください。

編集:アプリケーションサーバーについて言及するのを忘れていました。WAS7です。

4

8 に答える 8

2

EJB と JPA は単なるインターフェースです。それらを実装するには、まだ誰かが必要です。したがって、Spring + Hibernate が不可能な場合、別のフレームワークの OK を取得できない限り、JPA がないことを意味します (... エラー ... Toplink でしょうか? Hibernate ベースではないものはありますか?)

POJO と JDBC に行き詰まっている場合は、Grailsを検討することをお勧めします。そうすれば、あなたの人生はずっとシンプルになります。

于 2009-07-09T16:40:09.753 に答える
1

あなたの制約は多少矛盾していますが (結局、Hibernate は JPA 実装です)、標準的な解決策を採用することをお勧めします。EJB3/JPA のような標準スタックと手作りの POJO/JDBC 実装のどちらかしか選択肢がない場合は、EJB3 を選ぶと思います。

POJO/JDBC の道をたどると、おそらく Spring のような独自のフレームワークを作成することになりますが、機能が豊富ではなく、十分にテストされていないフレームワークです。カスタム フレームワークを作成することは、アプリケーション開発者にとって正当化されることはほとんどありません。

于 2009-07-09T22:38:21.307 に答える
1

議論の最初のレベルは、{POJO + JDBC、持続性を手で書く} と {持続性のためのフレームワーク} を比較することです。(また、興味深いサービスが必要になると思うので、独自の永続性をロールバックしたとしても、EJB3 / SLSBまたはSpringの同等物が関連していると思います)。

したがって、永続化テクノロジ (JPA または Hibernate) は現在、使用しない十分な理由が必要なレベルにあると考えています。JDBC の手動ローリング クラッドは、手動で行う必要のない日常的な作業です。

JPA v Hibernate および Spring v EJB3 の議論に関しては、私はかなりあいまいで、多くの宗教がある分野のようです。

于 2009-07-09T16:47:06.820 に答える
1

JPA がどのように許可されるかはわかりませんが、Hibernate は許可されません。Hibernate が JPA 実装であることを考えると、これはあまり意味がありません。OpenJPA など、別の JPA 実装で問題ないでしょうか?

既存のサーバーがあるかどうか、またはまだ選択されていないサーバーにアプリをインストールするかどうかについては言及していません. この決定はすでに行われていますか?もしそうなら、それはあなたの選択を決定するかもしれません. 完全な最新の JavaEE サーバーには、EJB3 と JPA の実装が既に付属しています。

サーバーが EJB3 対応のサーバーでない場合、EJB3 はあまり魅力的ではありません。

しかし、Spring や Hibernate などの実用的なテクノロジが除外されたとしても、POJO と JDBC を組み合わせることができる iBatis などの単純なフレームワークは常に存在します。

于 2009-07-09T16:48:35.070 に答える
0

EJB3+JPA を使用すると、非常に簡単に作業できます。非常にスケーラブルで、相互に構成して使用するのが非常に簡単です。エンティティの作成は最も難しい部分ですが、その後は Java に注意してください (特にエンティティ関係を使用する場合)。 spring と hibernate を 4 年間使用できます。アプリケーション サーバーがない場合は優れています。しかし、WAS 7.0 を使用している限り、EJB+JPA を使用することをお勧めします。

JPQL を使用することは、Java プログラマーにとってはるかに簡単で合理的です。でも; WAS 8.5 でのみサポートされている JPA 2.1 を使用しない限り、ストアド プロシージャを呼び出すことはできません。

于 2013-11-29T18:19:10.250 に答える
0

EJB+JPA を使用するだけです。

私はあなたがいくつかの「企業」環境に行き詰まっていて、オープンソースフレームワークを使用できないと思います..この場合、上記のインターフェースのIBMまたはOracle実装が利用可能であると思います-それを使用してください。

于 2010-07-01T02:41:52.907 に答える