プロジェクトに struts2 、 hibernate 、および MySql を使用しています。コース コードを含む 42 列 (すべて長いデータ型) を持つテーブル名 TimeTable があります。特定の行から特定のコースコードを持つ「列名」を検索したい。お願い助けて。
質問する
91 次
1 に答える
1
エンティティを休止状態で「適切な」方法でマッピングした場合、答えは明らかです。
TimeTableというエンティティがあり、Courseと42の関係があります(属性名はcourse1、course2 .... course42になると思います)。
結果のHQLは単にORの束です
from TimeTable t
where t.course1.code = :something
OR t.course2.code = :something .....
しかし、それは明らかに悪いモデル設計です。TimetableとCourseを多対多の関係にし、関係を格納する別のテーブルを用意する必要があります。したがって、エンティティでは、次のようなものが表示されます
class TimeTable {
@ManyToMany
private List<Course> courses;
}
そのようなデザインであなたの人生はずっと楽になります。
于 2012-07-30T03:07:52.850 に答える