package hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.procedure.ProcedureCall;
import org.hibernate.result.Output;
import org.hibernate.result.ResultSetOutput;
import hibernate.models.Hibernate;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.ParameterMode;
import jakarta.persistence.Persistence;
public class App {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("orientsoftware");
EntityManager entityManager = factory.createEntityManager();
entityManager.find(Hibernate.class, 1l);
Session session = entityManager.unwrap(Session.class);
ProcedureCall sp = session.createStoredProcedureCall("test.test_function");
sp.registerParameter(1, void.class, ParameterMode.REF_CURSOR);
sp.registerParameter(2, String.class, ParameterMode.IN);
sp.setParameter(2, "name");
Output output = sp.getOutputs().getCurrent();
List<Object[]> resultList = ((ResultSetOutput) output).getResultList();
Iterator itr = resultList.iterator();
System.out.println(itr.toString());
session.close();
entityManager.close();
}
}