Java。どちらも可能ですが。それは最も重要なことと、どのスキルがメンテナンスのために利用可能で、メンテナンスの価格に依存します。ストアドプロシージャは通常非常に高速ですが、可用性とパフォーマンスは、使用する正確なデータベースによって異なります。あなたは特別なスキルが必要です、そして、あなたはそれがすべてその特定のデータベースで働いている。
Hibernateには、永続化レイヤーから最高のパフォーマンスを得るために、すべてのデータベース用に書かれた特別な方言があります。ストアドプロシージャほど高速ではありませんが、かなり近いです。その上にSpringのデータを置くと、すべての難しさがなくなりました。メンテナンスにかかる費用はそれほど高くなく、Spring Dataを知っている人は、特別なデータベースベンダーよりも利用可能です。
HQLではさまざまな「難しい」クエリを簡単に作成できます。そのため、そこにブロックはありません。しかし、Hibernateはもっと可能性があります。あなたはキャッシュをeh-cacheで実行させることができ、Hibernateを使用することで、すぐに監査を完了させることができます。これはこのフレームワークに関する素晴らしいことです。これは広く使われており、多くの自由に使用できる依存関係が存在します。将来的にデータベースを変更したい場合は、Spring Dataを使用する際にapplication.propertiesファイルの3つのパラメータを変更することで可能になります。
いくつかのアノテーションを使用して再生し、より良い結果を得ることができます。たとえば、@Inheritanceの注釈があります。ここでは、いくつかのクラスを同じテーブルにまとめたり、さらに複数のテーブルに分割したりすることができます。また、@MappedSuperclassがあります。そこには、すべてのエンティティが拡張できるIDを持つ1つのJpaObjectを持つことができます。 JPAでもう少し巧妙なやり方が必要な場合は、おそらくthis postにスーパークラスと一般リポジトリの使い方に関する私の答えをチェックしてください。
ニースの回答。あなたの質問については、これが必要です。すべてのデータがいくつかのテーブルにあるので必要です。これらのデータをすべて混合してレポートを作成し、合計とパーセンテージなどを作成する必要があります。 JOOQについて聞いたことがありません。それをHibernateと混在させることは可能ですか?私はすべてのCRUD操作のためにHibernateを持っていて、おそらくJOOQをレポートのためだけに使うのですか? –
ジョインを実行し、集計関数を使用して合計とパーセンテージを作成し、この余分なテーブルを作成しないでください。あなたが望むものがSQL文で実行できるように思えます。はい、querydslとJOOQは、Hibernateに加えて使用できる別々のフレームワークです。 Hibernateと組み合わせて動作するquerydsl-jpa http://www.querydsl.com/static/querydsl/latest/reference/html/ch02.html#jpa_integrationを見てください。 –
pojoを使うだけで、あなたのサブワードをあなたの記憶に残すことができます。実際のテーブルを持つ必要はありません(エンティティにマップすることは可能です)。非エンティティpojoを使用する方法については、https://stackoverflow.com/questions/42419305/spring-data-jpa-getting-no-aliases-found-in-result-tuple-error-executing/42419939#42419939を参照してください。あなたのJPAリポジトリに –