package org.example.storedprocedure; import com.avaje.ebean.CallableSql; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import org.example.ExampleBaseTestCase; import org.junit.Test; import java.sql.Types; import static org.assertj.core.api.Assertions.assertThat; public class CallableSqlTest extends ExampleBaseTestCase { @Test public void testCallable() { EbeanServer server = Ebean.getDefaultServer(); //create or replace function sp_insert (p_name VARCHAR, OUT p_id INTEGER) CallableSql callableSql = server.createCallableSql("{call sp_insert(?, ?)}"); callableSql.setParameter(1, "rob name"); callableSql.registerOut(2, Types.INTEGER); server.execute(callableSql); Integer value = (Integer)callableSql.getObject(2); assertThat(value).isNotNull(); } @Test public void testCallable_withInOut() { EbeanServer server = Ebean.getDefaultServer(); //create or replace function sp_insert (p_name VARCHAR, OUT p_id INTEGER) CallableSql callableSql = server.createCallableSql("{call sp_insert2(?, ?)}"); callableSql.setParameter(1, "rob name"); callableSql.registerOut(1, Types.VARCHAR); callableSql.registerOut(2, Types.INTEGER); server.execute(callableSql); String nameOut = (String)callableSql.getObject(1); Integer intOut = (Integer)callableSql.getObject(2); assertThat(nameOut).isNotNull(); assertThat(intOut).isNotNull(); } }