0

私はいくつかのデータフィールドを持つクラスを持っています:

class Call{
roomId
roomDisplay
roomLocation
typeId
name
staffAidId
}

今、私はJavaで休止状態の注釈を使用してこれをマップしたいと思いますが、私が使用した元のSQLクエリは次のようなものでした:

SELECT 
    c.roomId, 
    r.display, 
    r.location, 
    c.typeId, 
    c.staffAidId, 
    s.firstname,
  s.lastname
FROM callalert c 
JOIN staffmember s  
LEFT JOIN roomGroup g ON g.groupId = s.roomGroupId 
LEFT JOIN room r ON r.roomId = g.roomId
WHERE s.staffId = 4444 AND c.roomId = g.roomId 

言い換えれば、これをマップする方法はありますか:異なるテーブルから1つのカスタムクラスに列をマップする方法はありますか? クラスは 1 つのテーブルを直接表すものではなく、関連するすべてのテーブルから、すべての列が使用されているわけではありません

編集

ビューソリューションを試しました:

上記のクエリでビューを作成した後、Netbeans を使用して休止状態のクラスを生成しようとすると、クラス Calls と埋め込み可能なクラス CallId の 2 つのクラスが生成されます。

インターネットを検索した後、これは休止状態が主キーを必要とするため、自分で作成するために発生します

クラスが 1 つだけ生成されるようにするにはどうすればよいですか? ビューに主キーを与えるにはどうすればよいですか (適切な主キーは、基になるテーブルの主キーの 1 つです)。これを設定するにはどうすればよいですか?

4

1 に答える 1

1

そのクエリのデータベース ビューを作成すれば、それができるはずです。それは機能しますが、データベース モデルから ddl スキーマを自動生成できないという欠点があります。

この記事をチェックしてください

于 2011-04-16T09:26:05.827 に答える