2011-03-18 19 views
29

के बीच चयन करें मैं इस SQL ​​कथन को जेपीक्यूएल समकक्ष में कनवर्ट करना चाहता हूं।जेपीक्यूएल दिनांक दिनांक

SELECT * FROM events 
WHERE events_date BETWEEN '2011-01-01' AND '2011-03-31'; 

यह तालिका events तालिका से जानकारी को सही ढंग से पुनर्प्राप्त करता है।

मेरी Events इकाई

@Column(name = "events_date") 
    @Temporal(TemporalType.DATE) 
    private Date eventsDate; 

में अभी तक यह है कि मैं क्या है, लेकिन यह काम नहीं कर रहा है।

public List<Events> findAllEvents(Date startDate, Date endDate) {  
    List<Events> allEvents = entityManager.createQuery(
    "SELECT e FROM Events e WHERE t.eventsDate BETWEEN :startDate AND :endDate") 
    .setParameter("startDate", startDate, TemporalType.DATE) 
    .setParameter("endDate", endDate, TemporalType.DATE) 
    .getResultList(); 
    return allEvents ; 
} 

मैं क्या गलत कर रहा हूं? धन्यवाद।

उत्तर

57

(e.eventsDate साथ t.eventsDate की जगह) इस क्वेरी का प्रयास करें:

SELECT e FROM Events e WHERE e.eventsDate BETWEEN :startDate AND :endDate 
3
public List<Student> findStudentByReports(Date startDate, Date endDate) { 
    System.out.println("call findStudentMethd******************with this pattern" 
        + startDate 
        + endDate 
        + "*********************************************"); 

    return em 
      .createQuery(
        "' select attendence from Attendence attendence where attendence.admissionDate BETWEEN : startDate '' AND endDate ''" 
          + "'") 
      .setParameter("startDate", startDate, TemporalType.DATE) 
      .setParameter("endDate", endDate, TemporalType.DATE) 
      .getResultList(); 

} 
+0

मैं कैसे इस क्वेरी प्रश्न में क्वेरी से अलग है नहीं मिलता है। साथ ही, endDate से पहले : नहीं होना चाहिए? और startDate के बाद 2 सिंगल कोट्स क्यों हैं, और अंत अंत के बाद? – Ievgen

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