【问题标题】:Spring mongo repository sort descending by a certain propertySpring mongo存储库按某个属性降序排序
【发布时间】:2018-02-05 16:14:28
【问题描述】:

我想按 lastChange 属性(来自 mongo 的项目列表)对降序进行排序。

RequestRepository 接口:

public interface RequestRepository extends MongoRepository<Request, String> {
    List<Request> findByUser(String id);
}

Request.java:

@Document(collection = "Requests")
public class Request {

@Id
private String id;
private String user;
private String username;
private String requestTitle;
private String requestMessage;
private boolean read;
private Date lastChange;
private Date requestDate;
private boolean isActiveRequest;
private boolean isPremiumRequest; //paid request

public Request() {}

public Request(
        String user,
        String requestTitle,
        String requestMessage,
        boolean read,
        Date lastChange,
        Date requestDate,
        boolean isActiveRequest) {
    this.user = user;
    this.requestTitle = requestTitle;
    this.requestMessage = requestMessage;
    this.read = read;
    this.lastChange = lastChange;
    this.requestDate = requestDate;
    this.isActiveRequest = isActiveRequest;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getUser() {
    return user;
}

public void setUser(String user) {
    this.user = user;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getRequestTitle() {
    return requestTitle;
}

public void setRequestTitle(String requestTitle) {
    this.requestTitle = requestTitle;
}

public String getRequestMessage() {
    return requestMessage;
}

public void setRequestMessage(String requestMessage) {
    this.requestMessage = requestMessage;
}

public boolean isRead() {
    return read;
}

public void setRead(boolean read) {
    this.read = read;
}

public Date getLastChange() {
    return lastChange;
}

public void setLastChange(Date lastChange) {
    this.lastChange = lastChange;
}

public Date getRequestDate() {
    return requestDate;
}

public void setRequestDate(Date requestDate) {
    this.requestDate = requestDate;
}

public boolean isActiveRequest() {
    return isActiveRequest;
}

public void setActiveRequest(boolean activeRequest) {
    isActiveRequest = activeRequest;
}

public boolean isPremiumRequest() {
    return isPremiumRequest;
}

public void setPremiumRequest(boolean premiumRequest) {
    isPremiumRequest = premiumRequest;
}
}

在我的代码中,我有以下列表:

List<Request> = RequestRepository.findByUser(userObj.getId());

我想让RequestRepository.findByUser(userObj.getId()); 中的数据按属性lastChange 降序排序。

我在 StackOverflow 上搜索过,发现如下排序方法:

List<Request> findAllByOrderByUpdatedAtDesc();

但如果我按用户搜索,这将不起作用。

按用户ID搜索并按lastChange排序的解决方案是什么?

谢谢!

【问题讨论】:

  • 显示您的请求类的外观
  • 这是一个简单的模型。我会更新代码
  • 您的模型中的 created_at 字段在哪里?
  • 它被命名为lastChange,我已经编辑了问题

标签: spring mongodb spring-data


【解决方案1】:

应该这样做。

List<Request> findByUserOrderByLastChangeDesc(String user);

用适当的细节更新您的问题。

【讨论】:

  • 我曾尝试过类似的事情,但我现在使用的不是 And I was using By,我现在就试试
  • 非常感谢!这有助于解决问题!
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2019-11-23
  • 1970-01-01
相关资源
最近更新 更多