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 :
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)
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
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 :
Java:
public class SamsMatch {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@EqualsAndHashCode.Exclude
private Integer id;
@Getter
@EqualsAndHashCode.Exclude
private LocalDateTime dateTime;
...
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)
Java:
@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