Можем ли мы использовать MongoRespository для findByNameAndPassword() этого типа запросов?
Optional<TicketUserDto> ticketuser=ticketUserDao.findByUserIdAndPassword(userId, password);
DAO:
@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 + "]";
}
}
2 ответа
Ваш метод 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);
}
Наконец я понял, что добавил @field, тогда я получу значения
@Field(value="userId")
private String userId;
@Field(value="password")
private String password;