【问题标题】:Hibernate 3 hql query for joining 2 table用于加入 2 个表的 Hibernate 3 hql 查询
【发布时间】:2013-07-31 22:08:36
【问题描述】:

我想执行下面的sql查询

SELECT * FROM users u JOIN `friendship` f ON u.id = f.f_uid WHERE f.u_uid = 118 AND u.lastDataFetched >= DATE_SUB(CURDATE(),INTERVAL 7 DAY)) order by f.mutual_friendship_count

如何使用 hibernate 3.0 编写 hql 查询

我是这样写的

String[] parameterName={"usersByUUid","inthepastday"};
Object[] paramValues = {user,"7"};
List<Friendship> friendshipFriend  = getHibernateTemplate().findByNamedParam(" from Users u JOIN Friendship f on  u.id = f.f_uid where f.u_uid = :usersByUUid and date_sub(now(),interval :inthepastday day) >=u.lastDataFetched  order by f.mutual_friendship_count ", parameterName,paramValues);

但它显示 hql 语法错误

【问题讨论】:

    标签: hibernate hql


    【解决方案1】:
    1. 您可以使用 java 代码并使用 java.util.CalendarJodaTime 创建所需的日期(今天的日期 - 7 天)。然后传入hql:

      and :date7DaysAgo &gt;= u.lastDataFetched

    2. 另一种方式是使用Native查询,这样就可以写纯SQL了。只需添加注释@NamedNativeQuery。 然后通过getHibernateTemplate().findByNamedQuery("nameOfYourNamedQuery");调用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 2011-05-18
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多