如何解决Java Spring Data 和 Cassandra @Query 中的自定义 LIKE 语句
我需要使用 LIKE 语句从表中查询,其中参数是可选的。
这是自定义查询,我可以在其中过滤 employee 表,其中非空请求参数:
选择 select = QueryBuilder.select().from("employee");
其中 selectWhere = select.where();
if (!email.isEmpty()) {
selectWhere.and(QueryBuilder.like("email","%" + email + "%"));
}
if (!firstName.isEmpty()) {
selectWhere.and(QueryBuilder.like("first_name","%" + firstName + "%"));
}
//注意:用户将提供电子邮件或名字或两者。
但是,上面的自定义查询需要手动将 Rows 映射到我觉得太乏味的对象:
ResultSet rs = cassandraClient.getApplicationSession().execute(select);
返回 rs.all().stream().map(row -> row.getString("first_name")).collect( Collectors.toList() );
有没有一种方法可以使用像下面这样的 Query 注释,这样它会直接返回实体?
@Query("SELECT * FROM employee WHERE email LIKE :email AND first_name LIKE :firstName")
员工搜索(@Param(value="email" String email,@Param(value="firstName" String firstName)
我尝试传递一个空参数值,但出现以下错误:
LIKE 值不能为空。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。