私はjpa 2.0を使用しており、次のエンティティがあります:
@Entity
public class Folder{
@ElementCollection
@CollectionTable(name="folder_files")
private Set<String> files;
// .....
}
ファイル名を指定して、 files == theGivenFileNameであるすべてのエントリを削除したいと思います。SQL では、次のようになります。
Delete from folder_files where files = XXX
criteria-api を使用してこのクエリを実行する方法はありますか? そうでない場合、jpql を使用してこのクエリを実行する方法はありますか?
更新:
私の質問は十分に明確ではなかったと思います: jpql はエンティティ (テーブルではない) を使用するため、上記の sql を実行することはできません@ElementCollection
。すべてのエンティティから、特定の値を保持するそのコレクション (私の場合はファイル セット) 内のすべてのエントリを削除したいと思います。jpqlまたは(さらに良い)基準APIを使用してそれは可能ですか?