Я заменяю Hibernate 4 на Hibernate 5 и теперь сталкиваюсь с проблемой с метаданными соединения. Фрагмент кода:Hibernate 5: как передать метаданные соединения в DialectresolutionInfo
public long getNext(final String sequenceName) {
ReturningWork<Long> maxReturningWork = new ReturningWork<Long>() {
@Override
public Long execute(Connection connection) throws SQLException {
DialectResolver dialectResolver = new StandardDialectResolver();
>>>>> problem is here >>>>>> Dialect dialect = dialectResolver.resolveDialect((DialectResolutionInfo)connection.getMetaData());
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(dialect.getSequenceNextValString(sequenceName));
resultSet = preparedStatement.executeQuery();
resultSet.next();
return resultSet.getLong(1);
}catch (SQLException e) {
throw e;
} finally {
if(preparedStatement != null) {
preparedStatement.close();
}
if(resultSet != null) {
resultSet.close();
}
}
}
};
Long maxRecord = databaseUtilities.getSession().doReturningWork(maxReturningWork);
return maxRecord;
}
Этот фрагмент кода компилирует, но дает мне java.lang.ClassCastException: com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData не может быть приведен к org.hibernate.engine.jdbc. dialect.spi.DialectResolutionInfo.
Есть ли правильный способ сделать это? Hibernate 4 работал без меня.
спасибо.
Проблемы решаются autowirin g SessionFactory и с помощью Dialect. – maksim2020