2012-07-30 37 views
1

我正在为我的项目使用struts2,hibernate和MySql。 我有表名TimeTable有42列(全长数据类型)包含课程代码。 我想搜索具有特定行的特定课程代码的“列名”。 请帮助我。获取列名

+0

我不太确定你在问什么。表列是否命名课程的名称?列值是课程代码吗?如果你找到一个课程代码,你想获得它所在列的名称? – 2012-07-30 02:42:02

+0

我想知道“表列名称”。列名称就像Monday_Session_1等等。现在我有一个值,即课程code.Each列存储课程code.Now我想搜索“表列名称”的值与我有的课程代码相匹配。 – Bharat 2012-07-30 03:08:53

回答

1

如果在休眠了“正确”的方式映射到实体,答案是显而易见的:

您将有一个名为时间表的实体,它有42个关系到课程(我敢打赌,属性名会course1,course2 .... course42)。

产生的HQL是一个简单的一堆或

from TimeTable t 
where t.course1.code = :something 
    OR t.course2.code = :something ..... 

然而,这显然是一个糟糕的模型设计。你应该让时间表和课程成为多对多的关系,并有另一个表格存储关系。因此,在实体中,您将看到类似于

class TimeTable { 
    @ManyToMany 
    private List<Course> courses; 
} 

这样的设计会让您的生活更轻松。

+0

谢谢!我必须改变我的设计,或者是否有其他解决方案。 – Bharat 2012-07-30 03:15:05

+0

答案在于:有一堆OR语句。但是,我认为花时间将设计更改为更合适的设计比花时间寻找该设计的解决方案更有价值。 (除非你无法改变设计) – 2012-07-30 04:37:18

+0

我认为它更好地改变设计。再次感谢你。 – Bharat 2012-07-30 09:58:26