# Spring Boot : Update Mysql Datenbank



## bueseb84 (28. Okt 2020)

Hallo zusammen,

ich habe eine kleine Spring Boot Anwendung, die Objekte in einer  einer Datenbank speichern soll. Ich habe einen Unit Test geschireben, der zwei Objekte in einer Datenbank speichert.
Die Konfiguration findet über die application.yml statt.

Mein Entity was gespeicher werden soll :


```
public class SamsMatch  {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @EqualsAndHashCode.Exclude
    private Integer id;

    @Getter
    @EqualsAndHashCode.Exclude
    private LocalDateTime dateTime;
...
```
In dem MatchObjekt sind noch weitere Felder, die für den Vergleich relevant sind z.B: Spielnummer, mannschaften usw,

Mein Anwendungsfall im Test : 
Ich speichere ein SamsMatch mit einem Datum z.B 1.1.2000 danach speichere ich das selbe Objekt (also die Mannschaften sind gleich und auch die Spielnummer) aber mit einerm anderen Datum z.B 1.1.2010 ab.

Der Test erwartet dann, dass im Repository nun nur noch das zweite Match enthalten. Der ist auch grün.

Allerdings : 
Ich habe zum Testen mal die Daten in ein MYSQL Datenbank geschrieben, Und wenn ich die MYSQL Workbench öffne um das Ergebnis zu überprüfen steht noch das erste Match in der Datenbank. Hat jemand eine Idee ?


HIer der Aufruf zum Speichern (Repository)

```
@Repository
public interface SamsMatchRepository extends JpaRepository<SamsMatch, Integer> {

    default SamsMatch saveObject(SamsMatch match) {
        Optional<SamsMatch> dbObjet = findAll().stream().filter(o -> o.equals(match)).findFirst();



        if (dbObjet.isPresent()) {
            System.out.println("=========================");
            System.out.println("number of matches " + findAll().size());

            System.out.println("delete match " + dbObjet.get());
            delete(dbObjet.get());

            System.out.println("number of matches " + findAll().size());
        }

        System.out.println("save match " + match);
        saveAndFlush(match);

        System.out.println("number of matches " + findAll().size());
        return match;
    }
}
```


Hier mal die Log ausgabe : 
=========================
number of matches 1
delete match SamsMatch(id=8, dateTime=2020-10-04T15:00, number=1201 ...
number of matches 0
save match SamsMatch(id=null, dateTime=2020-10-04T17:00, number=1201 ...
number of matches 1

Vielen Dank für eure Unterstützung


----------



## mrBrown (28. Okt 2020)

Wie sieht denn der Test aus? u.U. spielt da das Transaction-Management mit rein, und Änderungen innerhalb des Tests werden zurückgerollt.


----------

