2014-06-16 70 views
0

我有這個根據用戶ID獲取事件的Dao。它返回事件對象。問題!不使用數據訪問對象(dao)和JPA獲取實體數據?

public enum Dao { 
INSTANCE; 
public List<EventsDetail> getevents(String userId) { 
    EntityManager em = EMFService.get().createEntityManager(); 
    Query q = em.createQuery("select t from EventsDetail t where t.MemberId = :userId"); 
    q.setParameter("userId", userId); 
    @SuppressWarnings("unchecked") 
    List<EventsDetail> events = q.getResultList(); 
    return events; 
    } 
} 

這裏我有這個叫做dao的頁面,因爲我已經導入了dao類。在這裏我用try和catch來拋出異常,我得到空指針異常。

<% 
Dao dao = Dao.INSTANCE; 
UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 
List<EventsDetail> events = new ArrayList(); 
if (user != null) { 
    pageContext.setAttribute("user", user); 
    events = dao.getevents(user.getUserId()); 
    %> 
}.... 

<% 
try{ 
for (EventsDetail event : events) { 
    pageContext.setAttribute("title", event.Title()); 
    pageContext.setAttribute("place", event.getPlace()); 
    pageContext.setAttribute("category", event.Category()); 
    pageContext.setAttribute("cdate", event.Cdate()); 
%> 
      <div class="row"> 
       <span class="r1"><%=count%></span> 
       <span class="r2">${fn:escapeXml(cdate)}</span> 
       <span class="r2">${fn:escapeXml(place)}</span> 
       <span class="r3">${fn:escapeXml(title)}</span> 
       <span class="r4">${fn:escapeXml(category)}</span> 

      </div> 
<% } 
      } catch (Exception e) 
      { 
      System.out.println("Exception:" + e); 
      } 
      %> 

的問題是,我從這裏的數據已經在數據存儲persent數據存儲只是空洞的數據。

+0

是否有任何理由使用ENUM?只是好奇... :) –

+0

我只是初學者更精簡,從這個鏈接創建這種項目(http://www.vogella.com/tutorials/GoogleAppEngineJava/article.html)。正如他使用枚舉。所以我正在用來學習一些新的東西。 – norbugems

+0

thanx爲鏈接。 –

回答

1

我認爲問題出在您的getEvents方法。

,你可以嘗試做如下:

public enum Dao { 
INSTANCE; 
public List<EventsDetail> getevents(String userId) { 
    EntityManager em = EMFService.get().createEntityManager(); 
    Query q = em.createQuery("select t from EventsDetail t where t.MemberId = " + userId); 
    q.setParameter("userId", userId); 
    @SuppressWarnings("unchecked") 
    List<EventsDetail> events = q.getResultList(); 
    return events; 
    } 
} 

,並確保您傳遞正確的用戶ID。