Здравствуйте! Я использую dropwizard и hibernate в своем приложении и написал следующую проверку на хакерские ошибки.Это дает мне
org.hibernate.engine.jdbc.spi.SqlExceptionHelper: ResultSet is from UPDATE. No Data. error
Я пытался изменить .getResultList()
вызов на executeUpdate()
getMaxResults()
, list()
, но ни один из них не работает.Как заставить запрос SELECT работать в проверке работоспособности?
открытый класс DatabaseHealthCheck расширяет HealthCheck {
SessionFactory sessionFactory;
private static final String validationQuery =
"SELECT table_name FROM information_schema.tables WHERE table_schema = 'mySchema'";
public DatabaseHealthCheck(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
protected Result check() throws Exception {
Session session = sessionFactory.openSession();
final Transaction txn = session.beginTransaction();
try {
EntityManager em = session.getEntityManagerFactory().createEntityManager();
em.createNativeQuery(validationQuery).getResultList();
txn.commit();
} catch (Exception e) {
txn.rollback();
return Result.unhealthy("Cannot execute query due to " + e.getMessage());
} finally {
session.close();
}
return Result.healthy();
}
}
Я также попытался упростить запрос - «SELECT1», но все еще вижу ту же ошибку