gpt4 book ai didi

java - 按仅更新一个字段的日期对 ParseQuery 进行排序

转载 作者:行者123 更新时间:2023-12-01 09:33:12 26 4
gpt4 key购买 nike

我有一个提要,其中包含当前按“updatedAt”排序的帖子。我的初衷是将帖子推到最后回复的提要顶部(我通过在用户留下评论时增加每个帖子中的“replyCount”字段来做到这一点),但没有完全意识到另一个字段的事实,当用户“喜欢”某个帖子时,“likeCount”也会更新。我仍然想将那些最近“回复”的帖子推到提要的顶部,但不要以牺牲与喜欢帖子相关的奇怪的用户体验行为为代价,将它们也推到顶部。我不确定如何将两者分开。

我应该在这里做什么?我可以添加另一个名为“lastReplyCountTime”的列,然后根据该列对查询进行排序吗?也许将所有帖子的lastReplyCountTime设置为保存到数据库时的当前时间,然后仅在帖子收到回复时更新该值?

        String groupId = ParseUser.getCurrentUser().getString("groupId");
ParseQuery<ParseObject> query = new ParseQuery<>(ParseConstants.CLASS_POST);
query.whereContains(ParseConstants.KEY_GROUP_ID, groupId);
/*query.addDescendingOrder(ParseConstants.KEY_CREATED_AT);*/
query.orderByDescending("updatedAt");
query.findInBackground((posts, e) -> {

if (mSwipeRefreshLayout.isRefreshing()) {
mSwipeRefreshLayout.setRefreshing(false);
}

if (e == null) {

// We found messages!
mPosts = posts;

String[] usernames;
usernames = new String[mPosts.size()];
int i = 0;
for(ParseObject post : mPosts) {
usernames[i] = yeet.getString(ParseConstants.KEY_SENDER_NAME);
i++;
}

FeedAdapter adapter = new FeedAdapter(
getListView().getContext(),
mYeets);
setListAdapter(adapter);

}
});
}

最佳答案

您有 2 个选择:

  1. 就像您建议的那样,您可以创建另一个日期属性,我们将其命名为sortedUpdatedAt,并在每次更新相关值时使用当前日期更新它
  2. 如果您仍然想使用updatedAt,您可以将您的like对象包装在单独的解析对象(类)中。这个类将作为关系保存在父类中,然后每次用户“喜欢”时,您只能更新这个类,而不是整个对象。这样你的父对象的updatedAt就不会改变。

我认为选项 1 很好,因为它并不复杂,而且可以很快完成。

关于java - 按仅更新一个字段的日期对 ParseQuery 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39225854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com