2017-09-02 1 views
-2

Ich versuche, einige neue Werte gegen alte Werte zu aktualisieren, da die neuen Werte in Komma getrennt String (newStr) und alte Werte sind Integer-Arrays (oldStr) bin ich Schleifen sie und Aktualisieren eines durch ein.update Datenbankwerte innerhalb foreach

aber ich bin einige Probleme als Endergebnis mit Blick aktualisiert letzten newstr Werte gegen beide oldStr Werte:

Das ist, was ich tat:

Werte:

Integer [] oldStr-Wert ist [1, 2]

Zeichenfolge newStr-Wert ist 3,5

Code:

String[] parts = newStr.split(","); 

for(String newStrParts : parts) { 

    for(int oldStrParts : oldStr) { 
     String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrParts WHERE column2 =: oldStrParts "; 
     setParameter()......executeUpdate(); //sample JPA update query and exceute 
     } 
} 

Vorschläge benötigen :), was ist hier los? Wenn ja, wie kann ich das lösen?

Antwort

1

Verwenden Sie folgenden Code

String[] parts = newStr.split(","); 

int i = 0; 
for(int oldStrParts : oldStr) { 
     newStrParts = parts[i]; 
     i++; 
     String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrParts WHERE column2 =: oldStrParts "; 
     setParameter()......executeUpdate(); //sample JPA update query and exceute 
     } 
} 

Für diesen Fall neuer Wert nur einen alten Wert mit einer gewissen Position ersetzen.

0

Sie haben eine verschachtelte for-Schleife geschrieben, weshalb es nicht funktioniert. Sie können es auf diese Weise schreiben: `

String[] oldParts = new String[]{"1","2"}; 
String[] newParts = new String[]{"3","4"}; 
     for (int i = 0; i < oldParts.length; i++) { 
      String newStrPart = newParts[i]; 
      String oldStrPart = oldParts[i]; 
      String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrPart WHERE column2 =: oldStrPart "; 
     } 

`