Spring JPA Repository查询方法不区分大小写

时间:2017-09-07 13:33:32

标签: java spring spring-data-jpa

我一直在网上搜索这个问题,我发现的是关于如何创建不区分大小写的查询。我知道默认情况下查询应该区分大小写,但即使大写和小写字母与数据库中的大写字母不同,我的存储库仍会返回结果。

AccountRepository.java

$.ajax({
    url: 'http://example.com',
    data: {},
});

AccountService.java

@Repository
public interface AccountRepository extends JpaRepository<Account, Integer>
{
    Account findByPassword(String password);

    Account findByUsernameAndPassword(String username, String password);
}

上述服务,虽然在错误的情况下输入密码(例如public void login(Account entity) { System.out.println(repository.findByUsernameAndPassword( entity.getUsername(), entity.getPassword()); System.out.println(repository.findByPassword( entity.getPassword()); } vs mypassword),但两者都会打印出正确的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

的例子中
findByPassword

它将它分为关键词然后案例:

find  by  password

其中password是属性

的例子中
findByUsernameAndPassword

这变为

find  by  username  and  password

其中用户名和密码是属性。

请参阅https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods

您的数据库可能具有不区分大小写的开关集。 MySql允许这样,Oracle没有。