title: H2 database default value of TIMESTAMP column
body: <p>I am writing integration tests with H2 database.
  My database (generated) initialization include this script (because generated join table does not have this column):</p>
  
  <pre><code>ALTER TABLE INT_USR ADD IU_INSDTTM TIMESTAMP DEFAULT NOW();
  </code></pre>
  
  <p>This is how I create records:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>The method logRecentIntegrations(.., ..) just calls the DAO and the dao does this:</p>
  
  <pre><code>Query query = entityManager.createNativeQuery(
      "INSERT INTO INT_USR (USR_ID, INT_ID) VALUES (?, ?)");
  query.setParameter(1, userId)
      .setParameter(2, integrationId);
  query.executeUpdate();
  </code></pre>
  
  <p>Later in my test:</p>
  
  <pre><code>Query query = entityManager.createNativeQuery(
      "SELECT * FROM INT_USR ORDER BY IU_INSDTTM");
  List resultList = query.getResultList();
  </code></pre>
  
  <p>When I debug this test in resultList there are two records (correct) but they have same timestamp. Even when I inserted a breakpoint on line marked //1 and waited a while - so the time gap between inserts would be significant. (Thread.sleep - same result)</p>
  
  <p>I tried to modify the SQL script to</p>
  
  <pre><code>ALTER TABLE INT_USR ADD IU_INSDTTM TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
  </code></pre>
  
  <p>But with same result. Why both results have same timestamp?</p>