1

プロジェクトに struts2 、 hibernate 、および MySql を使用しています。コース コードを含む 42 列 (すべて長いデータ型) を持つテーブル名 TimeTable があります。特定の行から特定のコースコードを持つ「列名」を検索したい。お願い助けて。

4

1 に答える 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 に答える