【发布时间】:2021-12-13 18:32:35
【问题描述】:
我找不到问题所在。我正在通过用户名和密码在数据库中搜索用户。但它返回 null。
这是我的存储库:
@Repository
public interface UserCrudRepository extends CrudRepository<User, Integer>{
List<User> findByUsernameAndPassword(String username, String password);}
这是我的服务:
@Service
public class UserService {
@Autowired
private UserCrudRepository crudRepo;
public List<User> findByUsernameAndByPassword(String username, String password){
//List<UserModel> ut=null;
//ut= crudRepo.findByUsernameAndPassword(username, password);
return crudRepo.findByUsernameAndPassword(username, password);
}
当我调试我的应用程序时,我在“findByUsernameAndPassword(username, password);”中看到了用户写的信息是存在的,但是方法返回null。
这里有什么问题?
【问题讨论】:
-
结果是 null 还是空 List?您的数据库区分大小写吗? ("User1" vs "user1") Reposiory 返回 List
,在注释掉的部分我看到 List ... -
在
crudRepo.findByUsernameAndPassword内部发生的不是所有有趣的问题吗? -
在 crudRepo.findByUsernameAndPassword() 里面只有 Spring 魔法
-
也许是一个愚蠢的问题,但我猜你已经在你的数据库中编码了密码,你在调用
crudRepo.findByUsernameAndPassword(username, password)之前是否也对其进行了编码? -
@b.GHILAS,这是真的。我正在写一个更完整的答案,包括那个非常重要的细节
标签: java spring crud-repository