anchor.diff:  * `DELETE`
   * `INSERT ... SELECT`
   
  +Apart from support for DML for JPA entity types, there is also support for DML for entity collections.
   The construction of query builders for such statements works through the link:{core_jdoc}/persistence/CriteriaBuilderFactory.html[`CriteriaBuilderFactory`] API.
   
   === DELETE statement
  
positive.code: NOTE: When using Hibernate with embedded ids, you *must* map all the columns as *basic values*(no relations) directly into the entity itself, otherwise you won't be able to assign a value to the attributes/columns.
  
  WARNING: When using Oracle, generated identifiers currently don't work. Also see https://github.com/Blazebit/blaze-persistence/issues/306[#306]
  
  === CTE support
  
  
negative.code: 
  TIP: If your DBMS supports it, cascading deletes will be implemented as CTEs when deleting entities through this API.
  // TIP: If your DBMS supports it, cascading and polymorphic `DELETES` statements will be implemented as CTEs when deleting entities through this API.
  
  === DELETE collection statement
  
  The `DELETE` collection statement deletes collection entries of entities that satisfy the `WHERE` clause of the statement.
  A collection delete builder can be created via link:{core_jdoc}/persistence/CriteriaBuilderFactory.html#deleteCollection(javax.persistence.EntityManager,%20java.lang.Class,%20java.lang.String)[`CriteriaBuilderFactory.deleteCollection()`].
  The statement only works on collections that have a join or collection table.
  
  [source,java]
  ----
  DeleteCriteriaBuilder<Cat> cb = cbf.deleteCollection(em, Cat.class, "kittens", "cat")
      .whereExists()
          .from(Cat.class, "subCat")
          .where("cat.id").eqExpression("subCat.id")
          .where("subCat.name").isNull()
      .end();
  ----
  
  The alias `cat` or in general, an delete collection statement alias only allows access to the join or collection table related attributes.
  Generally, these attributes are
  
  * The source id i.e. `cat.id`
  * The target id i.e. `cat.kittens.id`
  * The collection index/key i.e. `KEY(cat.kittens)`
  
  [source,sql]
  ----
  DELETE FROM Cat(kittens) cat
  WHERE EXISTS(
      SELECT 1 FROM Cat subCat
      WHERE cat.id = subCat.id
        AND cat.name IS NULL
  )
  ----
  
  You can immediately execute the query by calling link:{core_jdoc}/persistence/Executable.html#executeUpdate()[`executeUpdate()`]
  or create a JPA `Query` by calling link:{core_jdoc}/persistence/Executable.html#getQuery()[`getQuery()`].
  
  === UPDATE statement
  
  