Este es un ejemplo de un procedimiento almacenado que recibe como parámetro la fecha de ejecución.

El código Java para realizar el llamado y paso de parámetros es el siguiente:

        //Establecer conexión
        Connection conn = em.unwrap(Connection.class);

        // Creando el objeto que contiene el nombre del procedimiento
        // (?) es el parámetro a pasar; si se necesita más de un parámetro se agrega otro ?
        try (CallableStatement procedure = conn.prepareCall("{call Nombre_Procedimiento(?)}")) {

            procedure.setQueryTimeout(TIMEOUT_IN_SECONDS);
            procedure.setDate(1, new java.sql.Date(date.getTime())); //Parámetro a pasar

            procedure.execute();  //Ejecución del procedimiento almacenado

        }