当前位置: 首页 > 知识库问答 >
问题:

如何在JpaRepostory Spring中找到多个喜欢的

花稳
2023-03-14

我想在Spring使用JpaRepository进行类似的查询。我找不到路。

如果在原生查询中,我想要这样的东西

select * from staff where ( 
name like '%param1%' OR
address like '%param1%' OR
staffNo like '%param1%')
order by name limit 10 offset 0

我已经成功地将其转换为JpaRepository,用于限制和偏移,除了“like”函数。我的当前代码:

List<Staff> findByIdNotNull(Pageable pageable);

如何在JpaRepo中插入“multiple-like”,我尝试使用containing,但它甚至不适用于一列

List<Staff> findByNameContaining(String name, Pageable pageable);

共有3个答案

海嘉赐
2023-03-14

您可以使用@Query注释

@Query("select * from staff where "
        + " ( name like %:param1% or "
        + "address like %:param2% or "
        + "staffNo like %:param3% ) "
        + "order by name limit 10 offset 0")
Optional<List<Staff>> findByNameContaining(@Param("param1") String param1,
                                                      @Param("param2") String param2,
                                                      @Param("param3") String param3);
柯凯旋
2023-03-14

您可以使用实体管理器

Query query = em.createQuery("select s from staff s where ( 
s.name like :param1 OR
s.address like :param2 OR
s.staffNo like :param3 )
order by name limit 10 of`enter code here`fset 0");
                query.setParameter("param1","%"+param1+"%");
                query.setParameter("param2","%"+param2+"%");
                 query.setParameter("param3","%"+param3+"%");

                 List<staff> l=query.getResultList();

给表一个别名。使用setParameter(name, value)定义设置参数。获取带有人员列表的结果列表。

闻人吕恭
2023-03-14

你就快到了。使用多个or查询,如:

List<Staff> findByNameContainingOrAddressContainingOrStaffNoContaining(
  String name, String address, int staffNo, Pageable pageable);

这样,您可以为类似查询提供多个条件。确保将实体属性命名为名称地址员工编号

 类似资料:
  • 问题内容: 我有这个MySQL查询。 我有具有此内容的数据库字段 为什么这样的查询不起作用?我需要体育或酒吧或两者兼有的领域吗? 问题答案: 该列表仅适用于。对于,您必须使用:

  • GET /user/likes Parameters 名称 类型 描述 limit Integer 获取条数,默认 20 after Integer 获取之后数据,默认 0 Response Status: 20 OK [ { "id": 2, // 点赞标识 "user_id": 1, // 点赞用户 "target_user": 1, // 接收用户(你能收到就

  • 问题内容: 是否可以在一个查询中将多个SQL LIKE通配符串在一起-像这样? 目的是查找同时包含通配符但没有特定顺序的记录。 问题答案: 正确的SQL语法是:

  • 喜欢资讯 取消喜欢资讯 资讯喜欢列表 喜欢资讯 POST /news/{news}/likes Response Headers Status: 201 Created 取消喜欢资讯 DELETE /news/{news}/likes Response Headers Status: 204 No Content 资讯喜欢列表 GET /news/{news}/likes Respons

  • 点喜欢 取消喜欢 喜欢的人列表 点喜欢 POST /feeds/:feed/like Response Status: 201 Created { "message": [ "操作成功" ] } 通知类型 { "channel": "feed:digg", // 通知关键字 "target": 325, // 动态id "content": "@2222 点喜欢了

  • 问题内容: 我正在使用elasticsearch从json文件过滤和搜索,并且我是这项技术的新手。所以我有点困惑如何在elasticsearch中写像查询一样的东西。 这是mysql查询。如何在Elasticsearch中编写此查询?我正在使用Elasticsearch 0.90.7版。 问题答案: 如果可能的话,我强烈建议您更新ElasticSearch版本,自0.9.x版本以来发生了重大变化。