Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível excluir ou atualizar uma linha pai ConstraintViolationException


Tente usar entityManager.createNativeQuery() . Você não pode usar createQuery() porque a tabela deve estar presente como uma entidade em seu código Java. Além disso, você precisa usar o formato SQL exato.

String query = "DELETE FROM USER_PHONE WHERE user_id=?1";
    try{
        Query q = entityManager.createNativeQuery(query);
        q.setParameter(1,id);
        q.executeUpdate();
        System.out.println(System.currentTimeMillis() + " DELETE User_Phone: userId " + id + " ==> deleted");
    } catch(Exception e){
        e.printStackTrace();
        return false;
    }`

Primeiro, exclua a linha de USER_PHONE (usando createNativeQuery() ) e, em seguida, de User (usando createQuery() )