HHH-8687 Better exception message for PostgreSQL81Dialect and named REF_CURSOR parameter binding
This commit is contained in:
parent
fa00cb3f41
commit
63ea1f812a
|
@ -587,7 +587,7 @@ public class PostgreSQL81Dialect extends Dialect {
|
|||
|
||||
@Override
|
||||
public ResultSet getResultSet(CallableStatement statement, String name) throws SQLException {
|
||||
throw new UnsupportedOperationException( "PostgreSQL only supports accessing REF_CURSOR parameters by name" );
|
||||
throw new UnsupportedOperationException( "PostgreSQL only supports accessing REF_CURSOR parameters by position" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -6,23 +6,29 @@
|
|||
*/
|
||||
package org.hibernate.dialect;
|
||||
|
||||
import java.sql.BatchUpdateException;
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import org.hibernate.JDBCException;
|
||||
import org.hibernate.LockMode;
|
||||
import org.hibernate.LockOptions;
|
||||
import org.hibernate.PessimisticLockException;
|
||||
import org.hibernate.exception.LockAcquisitionException;
|
||||
import org.hibernate.exception.spi.SQLExceptionConversionDelegate;
|
||||
|
||||
import org.hibernate.testing.TestForIssue;
|
||||
import org.hibernate.testing.junit4.BaseUnitTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.sql.BatchUpdateException;
|
||||
import java.sql.SQLException;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
import static org.hamcrest.core.Is.is;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
/**
|
||||
* Testing of patched support for PostgreSQL Lock error detection. HHH-7251
|
||||
|
@ -78,4 +84,18 @@ public class PostgreSQL81DialectTestCase extends BaseUnitTestCase {
|
|||
String constraintName = dialect.getViolatedConstraintNameExtracter().extractConstraintName(batchUpdateException);
|
||||
assertThat(constraintName, is("uk_4bm1x2ultdmq63y3h5r3eg0ej"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestForIssue(jiraKey = "HHH-8687")
|
||||
public void testMessageException() throws SQLException {
|
||||
PostgreSQL81Dialect dialect = new PostgreSQL81Dialect();
|
||||
try {
|
||||
dialect.getResultSet( Mockito.mock( CallableStatement.class), "abc" );
|
||||
fail( "Expected UnsupportedOperationException" );
|
||||
}
|
||||
catch (Exception e) {
|
||||
assertTrue( e instanceof UnsupportedOperationException );
|
||||
assertEquals( "PostgreSQL only supports accessing REF_CURSOR parameters by position", e.getMessage() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue