2

この学校のプロジェクトでは、データベース接続を使用することを主な目的とする書籍図書館システムを作成しています。この場合、JPA と ObjectDB です。

私たちの問題は、3 つのテーブルがあることです。1 つは書籍 (タイトル、著者、発行年)、2 番目は借り手 (名、姓、住所、電子メール、電話番号) を記述し、最後のテーブルは他の 2 つからプライマリ ID キーを取得する貸出関数です。テーブル。

問題は、借りた本の一覧機能を使用しているときに、他の 2 つのテーブルの ID のみが出力されることです。問題は SQL クエリにあると考えており、SQL を適切に学習する機会がありません。

そこで私たちの質問は、書籍テーブルからタイトルを取得し、ID ではなく借り手テーブルから姓名を取得する SQL クエリをどのように作成するかということです。

うまく機能した SQL クエリは次のとおりです。

TypedQuery<BokLån> q = em.createQuery("SELECT bookborrow FROM BookBorrow BookBorrow", BookBorrow.class);
4

2 に答える 2

0

IT は、fetch および fetch タイプのメカニズムの問題です。現在、エンティティは遅延ロードされています。これらをエンティティ クラスで積極的にロードできます。

于 2012-10-24T10:02:19.727 に答える
0

貸出テーブルを他のテーブルに結合し、そこから情報を取得するには、適切な JOIN ステートメントを作成する必要があります。

次のようなもの:

SELECT 
    book.title, 
    person.firstname, 
    person.lastname 
FROM
   borrower
     JOIN book ON book.bookid = borrower.bookID
     JOIN person ON person.personid = borrower.personid

それが機能する方法は、ON 条件がテーブルを結合する方法を指定することです。あなたの場合、借り手テーブルには、人物テーブルの PersonID 列に関連する personID があります。JOIN とのリンクを確立すると、Person テーブルの他の列にアクセスできます。

book テーブルに対してもまったく同じ方法が機能します。

于 2012-10-24T10:21:03.303 に答える