Konfiguration des Ruhezustands-SpülmodusJava

Java-Forum
Guest
 Konfiguration des Ruhezustands-Spülmodus

Post by Guest »

Bei Verwendung von Spring 3.2.1 habe ich festgestellt, dass die Standardeinstellung „flushModeType = Auto“ Probleme verursacht, da ich versuche, an dem Objekt zu arbeiten, bevor ich es beibehalte.
Ich habe es versucht um den FlushMode auf COMMIT zu setzen, aber wann immer es außerhalb einer @Transactional-Methode geschieht, geht es zurück auf AUTO.
Ich habe versucht, den FlushMode als Umgebungsvariable festzulegen. und direkt auf dem EntityManager, aber das zeigt das gleiche Verhalten. Wann immer der FlushMode außerhalb der Transaktion gesetzt wird, hat er keine Bedeutung.

Code: Select all

entityManager.setFlushMode(FlushModeType.COMMIT);
System.out.println(entityManager.getFlushMode());
gibt „AUTO“ aus
Aktualisiert: Der Code wurde außerhalb des automatischen Spülmodus beeinflusst:< /p>

Code: Select all

private void insertImageToDB(String imagePath, Map imageNameToMetaData, int numOfImages,
int currentImage) {
try {
ImageDB imageDB = new ImageDB();
imageDB.setGcsFullPath(imagePath);
imageDB.setStatus(PENDING);

setImageMetaData(imagePath, imageNameToMetaData, imageDB); //calling more setters in this method

imagesRepository.save(imageDB); //this clause causing extra persistence. I can solve it locally by removing this, but prefer to work with explicitly 'save()' action in order to under where and when I'm doing the commit.
logger.debug("processed {}/{} images", currentImage, numOfImages);
} catch (Exception e) {
logger.error("failed to save image {}", imagePath, e);
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post