String nativeSql = "Some random non-sql stuff";
Session sess = sessionFactory.openSession();
List <?> result = sess.createSQLQuery(nativeSql).list();
万一,如果nativeSql请求不是有效的请求,如何捕获本机异常(例如:PSQLException)?
最佳答案
Hibernate会将所有SQLException包装到org.hibernate.JDBCException
中。因此,您想捕获此Exception类型。如果您明确需要访问实际的PSQLException,则可以通过getSQLException()
方法检索它:
try {
String nativeSql = "Some random non-sql stuff";
Session sess = sessionFactory.openSession();
List <?> result = sess.createSQLQuery(nativeSql).list();
} catch (JDBCException e) {
SQLException sqlException = e.getSQLException;
if (sqlException instanceof PSQLException) {
PSQLException psqlException = (PSQLException) sqlException;
// ... work with psqlException ...
}
}