SQL select 1 from DUAL;
не очень хорошая проверка работоспособности, единственное, что вы видите, это ответ сервера, который не сообщает, исправны ли сами данные. Но если вы хотите задать такой вопрос, просто создайте свой собственный объект данных, который имитирует DUAL, и вы управляете объектом, и вы останетесь универсальными для любой СУБД.
Что-то вроде
@Entity
@Table(name="myDual")
public class MyDual implements Serializable {
@Id
@Column(name = "id")
Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
Не забудьте использовать CacheMode.IGNORE
или CacheMode.REFRESH
для форсирования запроса. В противном случае вы можете проверить кеш, а не базу данных ...