sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke slette eller opdatere en overordnet række ConstraintViolationException

Prøv at bruge entityManager.createNativeQuery() . Du kan ikke bruge createQuery() fordi tabellen skal være til stede som en enhed i din Java-kode. Du skal også bruge det nøjagtige SQL-format.

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

Slet først rækken fra USER_PHONE (ved hjælp af createNativeQuery() ), og derefter fra User (ved hjælp af createQuery() )



  1. Sådan opretter du en CHECK-begrænsning i SQL Server (T-SQL-eksempler)

  2. Udforsker Storage Engine-indstillinger for MariaDB

  3. Angivelse af et variabelnavn i QUERY WHERE-udtrykket i JDBC

  4. Hvordan skriver man SQL-forespørgsel for at finde ud af summen af ​​de højeste 4 kolonner ud af 5 kolonner?