用hql或者Criteria查询距今6个月没有下订单的客户

剑豪 2011-05-16 01:14:24
各位大侠帮帮忙。有这样一个需求,在单击客户流失的时候,自动查询距今六个月没有下订单的客户,更改客户状态,并把该客户的信息插入到客户流失表中。

(注意:要考虑到新客户的问题,就是刚开发的客户,人家还没下过订单,这样的情况不能把该客户插入到客户流失表中)。

我用的SSH,需要用hibernate的hql或者Criteria进行这些操作。数据库是mysql,表的设计是客户表和订单表存在主外键关系,客户表和客户流失表存在主外键关系。

大家帮帮忙,小弟先谢了。
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑豪 2011-05-17
  • 打赏
  • 举报
回复
恩,谢谢大家。问题已经解决了。
BUG胡汉三 2011-05-16
  • 打赏
  • 举报
回复

createTime : 用户信息创建时间(也就是注册时间)
OrderTime: 订单时间
Orders : 订单表

select * from Orders where 当前时间 > createTime(加上六个月) and 当前时间 > OrderTime(加上六个月);
如果觉得转换hql语句太麻烦。
直接使用原生态Sql:query = this.getSession().createSQLQuery(sql);
Spring89 2011-05-16
  • 打赏
  • 举报
回复
看到你的问题,让我想起北大青鸟毕业项目,这个貌似不是用代码实现的!
WSGPFMMY 2011-05-16
  • 打赏
  • 举报
回复
[code=Java] Property name = Property.forName("userName");

Session session=HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Userinfo.class).add(name.eq("admin")).add( Restrictions.between("time", "t1", "t2") );
for(int i=0;i<c.list().size();i++){
Userinfo u =(Userinfo)c.list().get(i);
System.out.println(u.getUserName());
}
这个Criteria如果条件不足按照这种方式添加 效率太低建议用 hql.

[code]

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧