我正在为我的项目使用 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 回答