ciao!

so che scala non è molto usato, ma penso che il problema sia più altro che il linguaggio in se.

allora, in fase di avvio se il file del db non è presente lo creo ed eseguo determinate operazioni.
se invece esiste faccio solo le altre operazioni.

codice:
@main
def main(): Unit = {
  if (!checkDbExists()) {
    val conn = createConn()
    createDb(conn)
    test(conn)
    conn.close()
  } else {
    val conn = createConn()
    test(conn)
  }
}


def test(conn: Connection): Unit = {
  addLog(conn)
  getAllLog(conn)
  addSync(conn)
  getAllSync(conn)
}
al primo avvio funziona tutto.
al secondo avvio, con db esistente, ottengo questo errore:
codice:
Exception in thread "main" org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "OPERATION_LOG" not found; SQL statement:
INSERT INTO operation_log (operation, date) VALUES (?, ?) [42102-232]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
	at org.h2.message.DbException.get(DbException.java:223)
	at org.h2.message.DbException.get(DbException.java:199)
	at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:7945)
	at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:7916)
	at org.h2.command.Parser.readTableOrView(Parser.java:7895)
	at org.h2.command.Parser.readTableOrView(Parser.java:7857)
	at org.h2.command.Parser.parseInsert(Parser.java:1521)
	at org.h2.command.Parser.parsePrepared(Parser.java:698)
	at org.h2.command.Parser.parse(Parser.java:581)
	at org.h2.command.Parser.parse(Parser.java:556)
	at org.h2.command.Parser.prepareCommand(Parser.java:484)
	at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:645)
	at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:561)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164)
	at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93)
	at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:315)
	at log$package$.addLog(log.scala:24)
	at main$package$.test(main.scala:70)
	at main$package$.main(main.scala:19)
	at main.main(main.scala:6)
però è strano, perchè invece nel primo avvio creo il db con le tabelle, inserisco i record e li visualizzo senza problemi.
sembra come non si riesca a connettere nel caso già esista.
possibile?

questa la funzione della connessione:
codice:
import java.sql.{Connection, DriverManager}


def createConn(): Connection = {
  Class.forName("org.h2.Driver")
  DriverManager.getConnection("jdbc:h2:./DATABASE/my_db", "", "")
}