2011-08-12 17 views
0

私はJavaプロジェクトを開発中です。私は2つのモジュールの学生と出席者の間のマッピングを持つ入場日に関連するmysqlのクエリが欲しいです。ここに私のコードは、これまでのところです: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コードに統合しないでください。 Javaについて要約すると、1)すべてのSQLを専用のSQLツールでテストしてからJavaに入れてください。2)無関係の*コードを投稿しないでください。3)重要な詳細を投稿してください。 –

答えて

0

私はあなたのクエリの骨折は、あなたが条件を逃したという事実にあると考えています。

WHERE句に列と値を記述する必要があります。すなわち

student.admissionDate> = admissionDatestudent.admissionDate> = admissionDate。ここで

は、クエリは次のようになります方法です(WHERE句を重視!):

" SELECT student " + 
    " FROM Student student " + 
    " WHERE student.admissionDate >= '" + admissionDate + "'" + 
    " AND student.admissionDate < '" + admissionDate + "'" 
関連する問題