【问题标题】:Can we use MongoRespository for findByNameAndPassword() this type of queries?我们可以将 MongoRespository 用于 findByNameAndPassword() 这种类型的查询吗?
【发布时间】:2018-10-02 08:53:54
【问题描述】:
Optional<TicketUserDto> ticketuser=ticketUserDao.findByUserIdAndPassword(userId, password);

道:

@Repository
public interface TicketUsersDao extends MongoRepository<TicketUserDto, Serializable> {
    Optional<TicketUserDto> findByUserIdAndPassword(String userId, String password);
}

这里是 DTO 定义

@Document(collection="ticket_users") 
public class TicketUserDto { 
    private String userId; 
    private String password; 

    public String getUserId() { return userId; } 
    public void setUserId(String userId) { this.userId = userId; } 

    public String getPassword() { return password; } 
    public void setPassword(String password) { this.password = password; }

    @Override public String toString() { 
        return "TicketUserDto [userId=" + userId + 
            ", password=" + password + "]"; 
    } 
}

【问题讨论】:

  • 请发布TicketUserDto的定义,以帮助我们了解发生了什么。
  • 当我调用 findAll() 时,我正在获取值,但是当我尝试使用 findByUserIdAndPassword 之类的 2 参数获取时,我正在获取 null
  • 类定义应该作为编辑添加,而不是作为评论。
  • 永远不要将代码添加为图像。将代码添加为文本。请看stackoverflow.com/help/how-to-ask
  • 请编辑问题,而不是将其发布为 cmets。

标签: java spring spring-boot spring-data-jpa mongorepository


【解决方案1】:

您的 find 方法应如下所示:

Optional<TicketUserDto> findOptionalByUserIdAndPassword(String userId, String password);

另外,你的类没有声明主键。为了让它工作,你应该重构你的类,如下所示:

@Document(collection="ticket_users") 
public class TicketUserDto { 
    @Id
    private String userId; 
    /* the other code remains untouched */
}

@Repository
public interface TicketUsersDao extends MongoRepository<TicketUserDto, String> {
    Optional<TicketUserDto> findOptionalByUserIdAndPassword(String userId, String password);
}

【讨论】:

  • 仍然为空
  • 仍然只有 null
  • 你如何测试这个类?我已经在我的编辑器中复制了代码,并且我得到了正确的对象。
【解决方案2】:

我终于明白了 我添加了@field,然后我得到了值

 @Field(value="userId")
private String userId;
@Field(value="password")
private String password;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-10
    • 2018-01-11
    • 2014-07-26
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多