H2 Datenbank Standardwert der TIMESTAMP-Spalte

Ich Schreibe, integration tests mit der H2 Datenbank.
Meine Datenbank (generiert) Initialisierung enthalten dieses Skript (denn die generierte join-Tabelle nicht über diese Spalte):

ALTER TABLE INT_USR ADD IU_INSDTTM TIMESTAMP DEFAULT NOW();

Dies ist, wie ich Datensätze erstellen:

Integration integrationOne = createIntegration(firstId, "FIRST");
Integration integrationTwo = createIntegration(secondId, "SECOND");
flushAndClear();
userService.logRecentIntegration(integrationOne.getId(), user.getId());
flushAndClear();
userService.logRecentIntegration(integrationTwo.getId(), user.getId()); //1

Die Methode logRecentIntegrations(.., ..) ruft einfach nur die DAO und das dao tut:

Query query = entityManager.createNativeQuery(
    "INSERT INTO INT_USR (USR_ID, INT_ID) VALUES (?, ?)");
query.setParameter(1, userId)
    .setParameter(2, integrationId);
query.executeUpdate();

Später in meinem test:

Query query = entityManager.createNativeQuery(
    "SELECT * FROM INT_USR ORDER BY IU_INSDTTM");
List resultList = query.getResultList();

Wenn ich debug in diesem test in der resultList gibt es zwei Datensätze (richtig), aber Sie haben den gleichen Zeitstempel. Auch wenn ich eingefügt, ein breakpoint auf Zeile //1 und wartete eine Weile - so die zeitliche Lücke zwischen den Einsätzen erheblich. (Thread.schlafen - das gleiche Ergebnis)

Habe ich versucht zu ändern, das SQL-Skript zu

ALTER TABLE INT_USR ADD IU_INSDTTM TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

Aber mit dem gleichen Ergebnis. Warum beide Ergebnisse haben denselben Zeitstempel?

InformationsquelleAutor DominikM | 2013-03-01

Schreibe einen Kommentar