sql >> Base de Datos >  >> RDS >> Mysql

No se puede eliminar o actualizar una fila principal ConstraintViolationException

Intenta usar entityManager.createNativeQuery() . No puede usar createQuery() porque la tabla debe estar presente como una entidad en su código Java. Además, debe usar el formato SQL exacto.

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;
    }`

Primero elimine la fila de USER_PHONE (usando createNativeQuery() ), y luego desde User (usando createQuery() )