JDBI गतिशील प्रश्नों के निर्माण के लिए बहुत उपयुक्त नहीं है। IMO इस पुस्तकालय का संपूर्ण बिंदु जितना संभव हो सके कोड और SQL प्रश्नों को अलग करना है।
हालाँकि, आपका विशेष मामला SQL के माध्यम से हल किया जा सकता है:
COALESCE(:foo, foo)
यदि तालिका में कॉलम का नाम 'foo' है, और :foo NULL को हल करेगा, तो mysql SET प्रभावी रूप से होगा
SET foo=foo
यानी यह कुछ नहीं करेगा (जो आपके मामले में वांछित बीवियर है)। अगर :foo शून्य नहीं है, तो यह
. के बराबर होगाSET foo=:foo