diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/QueryTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/QueryTest.java index d4f154a51a..c5f7c89bb2 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/QueryTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/QueryTest.java @@ -22,9 +22,13 @@ import org.hibernate.HibernateException; import org.hibernate.Session; +import org.hibernate.query.NativeQuery; import org.hibernate.query.sql.spi.NativeQueryImplementor; +import org.hibernate.testing.FailureExpected; import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase; +import org.hibernate.testing.orm.junit.JiraKey; +import org.hibernate.testing.orm.junit.NotImplementedYet; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -63,6 +67,7 @@ public void testJpqlBooleanLiteral() { } @Test + @JiraKey( "HHH-13082" ) public void testNativeQueryResult() { inTransaction( (session) -> { final NativeQueryImplementor query = session.createNativeQuery( "select id, salary from EMP", "emp_id_salary" ); @@ -76,6 +81,23 @@ public void testNativeQueryResult() { } ); } + @Test + @FailureExpected( jiraKey = "HHH-14975", message = "Not yet implemented" ) + @NotImplementedYet + @JiraKey( "HHH-14975" ) + public void testAutoAppliedConverterAsNativeQueryResult() { + inTransaction( (session) -> { + final NativeQueryImplementor query = session.createNativeQuery( "select id, salary from EMP", "emp_id_salary2" ); + + final List results = query.list(); + assertThat( results ).hasSize( 1 ); + + final Object[] values = results.get( 0 ); + assertThat( values[0] ).isEqualTo( 1 ); + assertThat( values[1] ).isEqualTo( SALARY ); + } ); + } + @Override protected Class[] getAnnotatedClasses() { return new Class[] { Employee.class, SalaryConverter.class }; @@ -108,6 +130,13 @@ public void cleanUpTestData() { @ColumnResult( name = "salary", type = SalaryConverter.class ) } ) + @SqlResultSetMapping( + name = "emp_id_salary2", + columns = { + @ColumnResult( name = "id" ), + @ColumnResult( name = "salary", type = Float.class ) + } + ) public static class Employee { @Id public Integer id;