2009-10-28 5 views
7

क्या कोई मुझे जेपीए क्वेरी में CURRENT_DATE का उपयोग करने के तरीके पर एक उदाहरण के बारे में बता सकता है?जेपीए क्वेरी में CURRENT_DATE का उपयोग करने का उदाहरण

CURRENT_DATE जेपीए में निर्दिष्ट है लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मुझे हमेशा unexpected token [CURRENT_DATE] अपवाद मिलता है। चूंकि यह जेपीए में निर्दिष्ट है क्योंकि सभी प्रदाताओं को इसका पालन करना चाहिए?

मैं एक्लिप्ससेंक 2.0 बीटीडब्ल्यू का उपयोग कर रहा हूं।

उत्तर

12

यह बहुत की तरह इस्तेमाल किया जा सकता है:

Query query = manager 
    .createQuery("SELECT c FROM CITIES c WHERE c.founded = CURRENT_DATE"); 
for (Object city : query.getResultList()) { 
    System.out.println(city); 
} 

... जहां स्थापित एक अस्थायी प्रकार है:

@Column(name = "FOUNDED") 
    @Temporal(TemporalType.DATE) 
    private Date founded = new Date(); 

नहीं एक महान उदाहरण है, लेकिन आप विचार मिलता है। मैं Eclipselink 1.1.2

+0

आप वास्तव में करीब हैं। मुझे आपका जवाब देखने से पहले ही यह मिला। मैं कुछ ऐसा करने की कोशिश कर रहा हूं जैसे तालिका x से x का चयन करें जहां x.id = 1 और (x.lastModified-CURRENT_DATE)> = 365 मुझे तिथियों पर गणना का उपयोग करने की आवश्यकता है। – javydreamercsw

+0

क्या जेपीए का उपयोग करके डेटाटाइम अंकगणित करना संभव है? अंतर को दिन में बदलने के लिए आपको कुछ फ़ंक्शन करना होगा (और मिनट या महीने या सहस्राब्दी आदि)। मुझे ऐसे किसी भी काम से अवगत नहीं है। जावा में अंकगणित दिनांक करें और फिर परिणामस्वरूप सीमा के साथ तुलना करना चुनें। – McDowell

+0

मुझे लगता है कि यह जेपीए की एक दोष या गायब कार्यक्षमता है। मुझे ऐसा लगता है कि मुझे ऐसा लगता है। धन्यवाद! – javydreamercsw

3

आप Expression Framework उपयोग कर रहे हैं वहाँ Expression (org.eclipse.persistence.expressions.Expression) वस्तु पर Expression currentDateDate() तरीका है।

+0

मुझे इसे आजमाने की आवश्यकता होगी, लेकिन मैं दृढ़ता प्रदाता पर निर्भरता से बचने के लिए जेनेरिक जेपीए प्रश्नों का उपयोग करने से बचने की कोशिश कर रहा था। – javydreamercsw

4

इस प्रश्न का उत्तर जेपीए के माध्यम से मूल्यों को पुनर्प्राप्त कर रहा था और फिर सादा जावा में गणित कर रहा था।

संबंधित मुद्दे