jpqlを使用して次の一括削除を実行しようとしています:
" DELETE " +
" FROM AutAnt aa " +
" JOIN aa.person p " +
" JOIN p.employees e" +
" WHERE e = :employess " +
" AND (" +
" aa.dateFrom BETWEEN :dateStart AND :dateEnd" +
" OR" +
" aa.dateTor BETWEEN :dataStart AND :dateEnd" +
" )");
しかし、私はこのエラーが発生しています:
unexpected token: JOIN
JPA ドキュメントには、「クエリによる削除では、通常のクエリと同じ JPQL 構文が使用されますが、1 つの例外があります。クエリ文字列は、select キーワードではなく delete キーワードで始まります」と記載されています。
完全に機能する次の選択クエリがあります。
" SELECT aa " +
" FROM AutAnt aa " +
" JOIN aa.person p " +
" JOIN p.employees e" +
" WHERE e = :employess " +
" AND (" +
" aa.dateFrom BETWEEN :dateStart AND :dateEnd" +
" OR" +
" aa.dateTor BETWEEN :dataStart AND :dateEnd" +
" )");
削除クエリの最初のステートメントを"DELETE aa"に変更すると、別の例外が発生します。
これは Hibernate のバグですか、それとも何か不足していますか。
乾杯!