package com.github.marschall.threeten.jpa.h2;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.OffsetDateTime;
import org.eclipse.persistence.internal.sessions.AbstractSession;
import org.eclipse.persistence.platform.database.H2Platform;
import org.h2.api.TimestampWithTimeZone;
/**
* Work around for <a href="https://github.com/h2database/h2database/pull/496">H2#496</a>.
*
* @deprecated no longer needed as of H2 1.4.195
*/
@Deprecated
public class PatchedH2Platform extends H2Platform {
@Override
public void setParameterValueInDatabaseCall(Object parameter,
PreparedStatement statement, int index, AbstractSession session)
throws SQLException {
if (parameter instanceof TimestampWithTimeZone) {
OffsetDateTime timestampWithTimeZone = TimestampWithTimeZoneConverter.timestampWithTimeZoneToOffsetDateTime((TimestampWithTimeZone) parameter);
statement.setObject(index, timestampWithTimeZone);
} else {
super.setParameterValueInDatabaseCall(parameter, statement, index, session);
}
}
}