2011-08-12 94 views
0

我正在開發一個Java項目。我想要一個與入學日期有關的mysql的查詢,在兩個模塊student和attendance之間進行映射。這是我的代碼到目前爲止:從JPA查詢MySQL數據庫

public List<Student> findStudentByDate(String admissionDate) { 

    System.out.println("call findStudentMethd******************with this pattern" 
     + admissionDate 
     + "*********************************************"); 
    return em.createQuery("select student from Student student where student.admissionDate>='' AND < '' like '" + admissionDate + "'") 
      .getResultList(); 
} 
+0

您有什麼問題?請包含數據庫模式的副本。 – Ariel

+1

如果您提出問題而不是發佈代碼,它會有所幫助。話雖如此,你的SQL沒有任何意義 - 你是否嘗試過在查詢窗口而不是從Java執行它? –

+2

鑑於您的SQL腳本包含非常基本的錯誤,您的SQL知識必須非常差。如果是這樣,您不應該直接在Java程序中測試SQL。在允許您查看即時反饋的環境中單獨運行SQL腳本:結果,錯誤等。因此,請不要將您的SQL腳本集成到Java代碼中,因爲您特別要求SQL,而不是關於Java。因此,總結一下,1)在將它放入Java之前,在專用的SQL工具中測試所有的SQL,2)不要發佈*不相關的*代碼,3)*發佈*重要的細節。 –

回答

0

我相信你的查詢的骨折在於你錯過了這個條件。

您必須提及WHERE子句中的列和值。

換句話說,student.admissionDate> = admissionDatestudent.admissionDate> = admissionDate

下面是該查詢應該怎麼樣子(強調WHERE子句!):

" SELECT student " + 
    " FROM Student student " + 
    " WHERE student.admissionDate >= '" + admissionDate + "'" + 
    " AND student.admissionDate < '" + admissionDate + "'"