ठीक है, मैं अपने लिए यह काम करने की कोशिश में वास्तव में लंबा समय बिताता हूं, लेकिन आखिरकार मुझे यह मिल गया। भविष्य के साहसी लोगों और समुदाय को भी इसे जानने दें।
मेरे लिए जो काम किया वह ए.एच. द्वारा यहां प्रस्तुत इंटरवल के लिए कास्टिंग था:
select current_timestamp + ( 2 || ' days')::interval;
आपका समाधान तब कुछ ऐसा होगा (जब दूसरी क्वेरी का विश्लेषण किया जाता है):
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)
या तीसरी क्वेरी के लिए (जिस तरह से मैंने इसे अपने मामले में काम किया है)
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)
कृपया भागने पर ध्यान दें ::
हो जाता है \\:\\:
. अपने शुद्ध SQL में जिसका आप अपने SQL संपादक में परीक्षण करेंगे ::
. का उपयोग करें , लेकिन आपके रिपॉजिटरी कोड में @Query
. के भीतर इन कास्टिंग संकेतों से बचने की जरूरत है (अन्यथा आपका हाइबरनेट/जेपीए नाराज हो जाएगा)।