2012-05-10 132 views
2

我有一個狀態支持bean調用@Create方法在隨後的休眠查詢(如下所示查詢):SEAM休眠查詢DAO執行兩次

@Override 
@SuppressWarnings("unchecked") 
public List<Session> getUserSessions(User user, Date startDate, Date endDate){ 
    String s = "select distinct s from Session s"; 
    s += " where s.user = :user and s.date >= :startDate and s.date <= :endDate order by s.date desc"; 
    Query query = this.getEntityManager().createQuery(s); 
    System.out.println("Making Query"); 
    query.setParameter("user", user); 
    query.setParameter("startDate", startDate); 
    query.setParameter("endDate", endDate); 
    return query.getResultList(); 
} 

然而,當我打開SQL日誌記錄我可以看到該查詢運行兩次?查看日誌下面

16:49:04,563 DEBUG [actions.sessions.SessionActionsBean] Searching for sessions from:  Wed Feb 01 00:00:00 GMT 2012 to: Wed Feb 29 23:59:59 GMT 2012 
16:49:04,564 INFO [STDOUT] Making Query 
16:49:04,564 INFO [STDOUT] Making Query 
16:49:04,565 INFO [STDOUT] Hibernate: select distinct session0_.session_id as session1_101_, session0_.av_pace as av2_101_, session0_.calories as calories101_, session0_.date_created as date4_101_, session0_.date as date5_101_, session0_.distance as distance101_ 
16:49:04,565 INFO [STDOUT] Hibernate: select distinct session0_.session_id as session1_101_, session0_.av_pace as av2_101_, session0_.calories as calories101_, session0_.date_created as date4_101_, session0_.date_swam as date5_101_, session0_.distance as distance101_ 

是從一個JSF調用的支持bean只運行一次,但DAO查詢豆似乎調用getUserSessions()兩次?

這是有原因,還是記錄問題?

謝謝

+1

嗨DaveB,你改變了日誌記錄屬性?我曾經遇到同樣的問題,但我有兩個寫入控制檯的日誌處理程序。你能否以其他方式顯示你的通話班?也許別的東西配置不當。 – gadeynebram

回答

0

這兩個查詢不完全一樣。第一個SELECT子句要求列session0_.date,而第二個則選擇session0_.date_swam

你確定沒有其他事情了嗎?