diff --git a/java/lance-jni/src/blocking_scanner.rs b/java/lance-jni/src/blocking_scanner.rs
index 85fda0a97cf..6ad09fed920 100644
--- a/java/lance-jni/src/blocking_scanner.rs
+++ b/java/lance-jni/src/blocking_scanner.rs
@@ -532,6 +532,13 @@ pub(crate) fn build_scanner_with_options<'a>(
let approx_mode_str = env.get_string_from_method(&java_obj, "getApproxModeString")?;
scanner.approx_mode(parse_approx_mode(&approx_mode_str)?);
+ scanner.rq_precision(
+ env.get_string_from_method(&java_obj, "getRqPrecisionString")?
+ .parse()?,
+ );
+ if let Some(factor) = env.get_optional_u32_from_method(&java_obj, "getRqCascadeFactor")? {
+ scanner.rq_cascade_factor(factor)?;
+ }
Ok(())
})?;
diff --git a/java/lance-jni/src/utils.rs b/java/lance-jni/src/utils.rs
index 782e3941919..a7ee30cd25b 100644
--- a/java/lance-jni/src/utils.rs
+++ b/java/lance-jni/src/utils.rs
@@ -315,6 +315,9 @@ pub fn get_query(env: &mut JNIEnv, query_obj: JObject) -> Result