休止状態でネイティブ クエリを実行しようとすると、奇妙なエラーが発生します。これは私のクエリです。
String qsf = "LEFT OUTER JOIN record_v2_record_audit rra ON r.record_id = rra.record_id "
+ "LEFT OUTER JOIN record_audit ra ON rra.record_audit_id = ra.record_audit_id AND rra.record_audit_id = ra.record_audit_id "
+ "LEFT OUTER JOIN repeating_field rf ON r.record_id = rf.record_id "
+ "LEFT OUTER JOIN repeating_field_field rff ON rf.repeating_field_id = rff.repeating_field_id "
+ "LEFT OUTER JOIN field_v2 f ON rff.field_id = f.field_id AND rff.field_id = f.field_id "
+ "LEFT OUTER JOIN field_image_v2 fi ON f.field_id = fi.field_id "
+ "WHERE r.record_type_id = 1 "
+ "AND r.public_access = 0 "
+ "AND r.status = 'A' "
+ "AND ra.process_type = 'A' "
+ "AND rf.field_type_id = 100032011 "
+ "AND fi.public_access = 'A'";
qsc = "SELECT COUNT(DISTINCT r.record_id) FROM record_v2 r "
+ qsf + " ;";
そして、次のようにクエリを実行します。
BigInteger totalRecords = (BigInteger) entityManager.createNativeQuery(
qsc).getSingleResult();
しかし、私はこのエラーが発生しています:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: クエリを実行できませんでした
本当に私を投げているビットはこれです:
原因: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 構文にエラーがあります。1 行目の「limit 2」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
スタックトレースに表示されます。
クエリはMySQl管理者からエラーなしで実行されるため、ここで途方に暮れています。
Ubuntu 10.10 で JDBC 5.1.15 で JBoss 5 を使用しています。
助けてくれてありがとう...!