私はCarと呼ばれるテーブルを持つデータベースを持っています。車のテーブルは次のようになります:Java Database Access Builder Patter
+----+------+--------------+-----------+----------+------+
| Id | Name | Desccription | Make | Model | Year |
+----+------+--------------+-----------+----------+------+
| 1 | A | something1 | Ford | Explorer | 2010 |
| 2 | B | something2 | Nissan | Ultima | 2005 |
| 3 | C | something3 | Chevrolet | Malibu | 2012 |
+----+------+--------------+-----------+----------+------+
私のウェブサイトのページでは、別の情報を表示したいと考えています。いくつかのページは名前を表示したいだけで、他の人はメイクとモデルなどを表示したいものです。
私はこの情報をすべて取得するためにWebから呼び出されるAPIを持っています。 APIは、JPAとQueryDSLを使用してデータベースと通信し、情報を取得します。私は、その特定のページに必要な情報だけを取得したいと思います。私は自分のレポにいくつかのビルダーパターンを実装することを考えています。私は自分が望むものだけを取り出せるようにしていますが、どうやってそれをどうやって行くのかははっきりしていません。
たとえば、私のホームページでは車の名前のみを表示したいとします。だから、HomeController
を呼ぶだろうし、コントローラは、このような何かリポジトリ層を呼び出しますHomeService
呼び出します。
carRepository.getCarById(1).withName().build();
製造元とモデルを表示したいいくつかの他のページでは、このようなレポコールになるだろうし。
carRepository.getCarById(1).withMake().withModel.build();
Java/Jpaでこれを実装する最良の方法は何ですか?
私は、JPAの基本的なチュートリアルから始めて、JPAをもっと理解するために、あなたの車のAPIに組み込むことをお勧めします。それが書かれているように、この質問はそれほど広すぎます。 –
@AndyGuibert私たちは実際にデータを取得するためのjpaプレーヤーを実際に持っていますが、問題は常にすべてのページを検索することです。 getByIdメソッドがあると、いくつかのページの情報が多すぎる車のエンティティ全体を取得します。そこで私たちはgetCarByIdForHomePageやgetCarByIdForAdminPageなどの特定のページのメソッドを作成し始めました。しかし、これはすぐに手を抜けるので、より良いアプローチがあるかどうか疑問に思っています – Richard