Search in sources :

Example 1 with Output

use of org.hibernate.result.Output in project hibernate-orm by hibernate.

the class OracleStoredProcedureTest method testHibernateProcedureCallRefCursor.

@Test
public void testHibernateProcedureCallRefCursor() {
    EntityManager entityManager = createEntityManager();
    entityManager.getTransaction().begin();
    try {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("sp_person_phones");
        call.registerParameter(1, Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter(2, Class.class, ParameterMode.REF_CURSOR);
        Output output = call.getOutputs().getCurrent();
        List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
        assertEquals(2, postComments.size());
    } finally {
        entityManager.getTransaction().rollback();
        entityManager.close();
    }
}
Also used : ResultSetOutput(org.hibernate.result.ResultSetOutput) EntityManager(javax.persistence.EntityManager) ProcedureCall(org.hibernate.procedure.ProcedureCall) Output(org.hibernate.result.Output) ResultSetOutput(org.hibernate.result.ResultSetOutput) Session(org.hibernate.Session) Test(org.junit.Test)

Example 2 with Output

use of org.hibernate.result.Output in project hibernate-orm by hibernate.

the class OracleStoredProcedureTest method testHibernateProcedureCallRefCursor.

@Test
public void testHibernateProcedureCallRefCursor() {
    doInJPA(this::entityManagerFactory, entityManager -> {
        // tag::sql-hibernate-call-sp-ref-cursor-oracle-example[]
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("sp_person_phones");
        call.registerParameter(1, Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter(2, Class.class, ParameterMode.REF_CURSOR);
        Output output = call.getOutputs().getCurrent();
        List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
        assertEquals(2, postComments.size());
    // end::sql-hibernate-call-sp-ref-cursor-oracle-example[]
    });
}
Also used : ResultSetOutput(org.hibernate.result.ResultSetOutput) ProcedureCall(org.hibernate.procedure.ProcedureCall) Output(org.hibernate.result.Output) ResultSetOutput(org.hibernate.result.ResultSetOutput) Session(org.hibernate.Session) Test(org.junit.Test)

Example 3 with Output

use of org.hibernate.result.Output in project hibernate-orm by hibernate.

the class HANAStoredProcedureTest method testHibernateProcedureCallRefCursor.

@Test
@TestForIssue(jiraKey = "HHH-12138")
public void testHibernateProcedureCallRefCursor() {
    EntityManager entityManager = createEntityManager();
    entityManager.getTransaction().begin();
    try {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("sp_person_phones");
        call.registerParameter(1, Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter(2, Class.class, ParameterMode.REF_CURSOR);
        Output output = call.getOutputs().getCurrent();
        List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
        assertEquals(2, postComments.size());
    } finally {
        entityManager.getTransaction().rollback();
        entityManager.close();
    }
}
Also used : ResultSetOutput(org.hibernate.result.ResultSetOutput) EntityManager(javax.persistence.EntityManager) ProcedureCall(org.hibernate.procedure.ProcedureCall) Output(org.hibernate.result.Output) ResultSetOutput(org.hibernate.result.ResultSetOutput) Session(org.hibernate.Session) Test(org.junit.Test) TestForIssue(org.hibernate.testing.TestForIssue)

Example 4 with Output

use of org.hibernate.result.Output in project hibernate-orm by hibernate.

the class ResultMappingTest method testMappingSomeFields.

@Test
public void testMappingSomeFields() {
    inTransaction(session -> {
        final ProcedureCall call = session.createStoredProcedureCall("findOneUser", "some-fields");
        final ProcedureOutputs procedureResult = call.getOutputs();
        final Output currentOutput = procedureResult.getCurrent();
        assertNotNull(currentOutput);
        final ResultSetOutput resultSetReturn = assertTyping(ResultSetOutput.class, currentOutput);
        final Object result = resultSetReturn.getSingleResult();
        assertTyping(H2ProcTesting.MyEntity.class, result);
        assertEquals("Steve", ((H2ProcTesting.MyEntity) result).name);
    });
}
Also used : ResultSetOutput(org.hibernate.result.ResultSetOutput) ProcedureCall(org.hibernate.procedure.ProcedureCall) ProcedureOutputs(org.hibernate.procedure.ProcedureOutputs) ResultSetOutput(org.hibernate.result.ResultSetOutput) Output(org.hibernate.result.Output) Test(org.junit.Test)

Example 5 with Output

use of org.hibernate.result.Output in project hibernate-orm by hibernate.

the class StoredProcedureTest method baseTest.

@Test
public void baseTest() {
    Session session = openSession();
    session.beginTransaction();
    ProcedureCall procedureCall = session.createStoredProcedureCall("user");
    ProcedureOutputs procedureOutputs = procedureCall.getOutputs();
    Output currentOutput = procedureOutputs.getCurrent();
    assertNotNull(currentOutput);
    ResultSetOutput resultSetReturn = assertTyping(ResultSetOutput.class, currentOutput);
    String name = (String) resultSetReturn.getSingleResult();
    assertEquals("SA", name);
    session.getTransaction().commit();
    session.close();
}
Also used : ResultSetOutput(org.hibernate.result.ResultSetOutput) ProcedureCall(org.hibernate.procedure.ProcedureCall) ProcedureOutputs(org.hibernate.procedure.ProcedureOutputs) ResultSetOutput(org.hibernate.result.ResultSetOutput) Output(org.hibernate.result.Output) Session(org.hibernate.Session) Test(org.junit.Test)

Aggregations

ProcedureCall (org.hibernate.procedure.ProcedureCall)14 Output (org.hibernate.result.Output)14 ResultSetOutput (org.hibernate.result.ResultSetOutput)14 Test (org.junit.Test)14 Session (org.hibernate.Session)10 ProcedureOutputs (org.hibernate.procedure.ProcedureOutputs)9 List (java.util.List)3 EntityManager (javax.persistence.EntityManager)3 TestForIssue (org.hibernate.testing.TestForIssue)1