2012-07-30 89 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