【问题标题】:SEAM hibernate query DAO executing twiceSEAM休眠查询DAO执行两次
【发布时间】:2012-05-19 06:07:52
【问题描述】:

我有一个有状态的支持 bean,它在 @Create 方法期间调用以下休眠查询(查询如下所示):

@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 查询 bean 似乎调用了两次 getUserSessions()?

这是有原因的,还是日志记录问题?

谢谢

【问题讨论】:

  • 嗨 DaveB,您是否更改了日志记录属性?我曾经遇到过同样的问题,但我有 2 个日志处理程序,它们都写入控制台。您能否以其他方式显示您的呼叫课程?可能其他配置不正确。

标签: hibernate jsf seam seam2


【解决方案1】:

这两个查询并不完全相同。第一个SELECT 子句要求列session0_.date,而第二个子句选择session0_.date_swam

你确定没有其他事情发生吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2016-01-27
    • 2013-12-20
    相关资源
    最近更新 更多