在DB中检索超过5分钟的元素

Fab*_*non 0 java

我正在使用播放框架版本1.2.5,我想检索所有未更新其会话5分钟的连接用户,然后我想将其连接状态设置为"已断开连接".

这是我的模型:

@Entity
public class User extends Model {

    @Required
    public String name;

    public boolean isConnected;

    public Date lastConnectionDate;

}
Run Code Online (Sandbox Code Playgroud)

以下是更新用户的Job:

Date fiveMinsAgo = new Date(new Date().getTime() - 5 * 60);
List<User> list = User.find("select u from User u where u.isConnected = true and u.lastConnectionDate < ?", fiveMinsAgo).fetch();

for (User user : list) {
    // We set these accounts as disconnected
    user.isConnected = false;
    user.save();
}
Run Code Online (Sandbox Code Playgroud)

这段代码似乎不起作用.即使用户的lastConnectionDate不早于5分钟,用户也会设置为"已断开连接" .我做错什么了吗 ?

有没有更好的方法/代码来做我想做的事情?(比如UPDATE命令)

谢谢您的帮助

Sal*_*Sal 6

Date.getTime()返回毫秒.

试试这个:

Date fiveMinsAgo = new Date(new Date().getTime() - 5 * 60 * 1000);
Run Code Online (Sandbox Code Playgroud)