Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Eine übergeordnete Zeile ConstraintViolationException kann nicht gelöscht oder aktualisiert werden

Versuchen Sie es mit entityManager.createNativeQuery() . Sie können createQuery() nicht verwenden da die Tabelle als Entität in Ihrem Java-Code vorhanden sein sollte. Außerdem müssen Sie das exakte SQL-Format verwenden.

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

Löschen Sie zuerst die Zeile von USER_PHONE (unter Verwendung von createNativeQuery() ) und dann von User (unter Verwendung von createQuery() )