0
所以,我有一个名为app的类。应用程序与名为user的类具有一对多关系。用户与名为login的类具有一对多关系。登录包含表示用户注销时间的字段,用时间戳表示。如果我想创建一个hibernate标准查询来返回在过去x天内签名的用户,那么你会怎么做?这是我迄今为止,它只是返回所有用户,无论用户当他们登录的:在多个表上休眠一对多联接
Calendar calendar = Calendar.getInstance();
java.util.Date now = calendar.getTime();
java.sql.Timestamp currentTimestamp = new java.sql.Timestamp(now.getTime());
Calendar calendar2 = Calendar.getInstance();
calendar2.roll(Calendar.DAY_OF_MONTH, days*(-1));
java.util.Date past = calendar2.getTime();
java.sql.Timestamp pastTimestamp = new java.sql.Timestamp(past.getTime());
Criteria LoginCriteria = session.createCriteria(Application.class, "App")
.add(Restrictions.eq("App.appID", appid))
.createAlias("App.users", "user")
.createAlias("user.logins", "lg")
.add(Restrictions.ge("lg.endTime", pastTimestamp))
.add(Restrictions.le("lg.endTime", currentTimestamp));
我使用时间戳来衡量时间。如果需要,我可以提供更多信息。