我正在为我的项目使用struts2,hibernate和MySql。 我有表名TimeTable有42列(所有长数据类型)包含课程代码。 我想搜索具有特定行的特定课程代码的“列名”。 请帮帮我。
答案 0 :(得分:1)
如果你已经在hibernate中以“正确”的方式映射了实体,答案是显而易见的:
您将拥有一个名为TimeTable的实体,该实体与课程有42个关系(我打赌属性名称为course1,course2 .... course42)。
生成的HQL只是一堆OR
from TimeTable t
where t.course1.code = :something
OR t.course2.code = :something .....
然而,这显然是一个糟糕的模型设计。您应该将时间表和课程设置为多对多关系,并使用另一个表来存储关系。因此,在实体中,您将看到类似
的内容class TimeTable {
@ManyToMany
private List<Course> courses;
}
通过这样的设计,你的生活会更轻松。