HSQLDB kryptische Ausnahmemeldung: "Funktion nicht unterstützt"

Ich habe JDBC-Code, der durch Ausführen eines PreparedStatements in eine Datenbanktabelle eingefügt wird. Wenn ich den Code in einer speicherinternen HSQLDB-Datenbank (als Teil eines JUnit-Tests) ausführe, erhalte ich eine SQLFeatureNotSupportedException. Die einzige Information ist die Meldung "Feature nicht unterstützt" und der Herstellercode -1500. Was ich mache, ist ein einfaches Einfügen in eine Tabelle - ich kann mir nicht vorstellen, dass dies in der neuesten HSQLDB nicht unterstützt wird.

Mein Code:

public Observations saveOrUpdate(final Observations observations)
{
    try
    {
        if (connection == null)
        {
            connection = getJdbcTemplate().getDataSource().getConnection();
        }

        // create the prepared statement
        String sql = "INSERT INTO " + Observations.TABLE_NAME +
                     " (OBS_YEAR, WINTER, SPRING, SUMMER, FALL, ANNUAL, DATA_TYPE, CREATED_DATE, UPDATED_DATE, " +
                     Observations.ID_COLUMN_NAME +
                     ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1, observations.getYear());
        preparedStatement.setBigDecimal(2, observations.getJan());
        preparedStatement.setBigDecimal(3, observations.getFeb());
        preparedStatement.setBigDecimal(4, observations.getMar());
        preparedStatement.setBigDecimal(5, observations.getApr());
        preparedStatement.setBigDecimal(6, observations.getMay());
        preparedStatement.setString(7, observations.getDataType().toString());
        preparedStatement.setTimestamp(8, new Timestamp(observations.getCreatedDate().getTime()));
        preparedStatement.setTimestamp(9, new Timestamp(observations.getUpdatedDate().getTime()));
        preparedStatement.setLong(10, observations.getId());
        preparedStatement.executeUpdate(sql);

        return observations;
    }
    catch (SQLException ex)
    {
        throw new RuntimeException(ex);
    }
}

Kann jemand vorschlagen, was das Problem sein könnte oder was ich sonst noch weiter untersuchen sollte? Vielen Dank im Voraus für Ihre Hilfe

--Jame

Antworten auf die Frage(6)

Ihre Antwort auf die Frage