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

Spring JPA@Query(带有LIKE)

傅朗
2023-03-14

我试图在CrudRepository中创建一个方法,它将能够给出用户列表,这些用户的用户名就像输入参数一样(不仅以它开头,而且包含它)。我尝试使用方法“findUserByUserNameLike(@param(”username“)String username)”,但正如Spring文档中所述,该方法等于“where user.username like?1”。这对我不利,因为我已经告诉我,我正在尝试获取所有用户的用户名包含...

@Repository
public interface UserRepository extends CrudRepository<User, Long> {

@Query("select u from user u where u.username like '%username%'")
List<User> findUserByUsernameLike(@Param("username") String username);
}

共有1个答案

谭健柏
2023-03-14

试着用下面的方法(它对我有用):

@Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:username,'%')")
List<String> findUsersWithPartOfName(@Param("username") String username);

注意:JPQL中的表名必须以大写字母开头。

 类似资料:
  • 我试图写这个来获取列表,我必须将ID列表作为参数传递: 我的实体是我用来查询的实体是: 但我在运行后遇到了以下异常: 有人能帮我用上面的方法获取列表吗?或者能告诉我我在这方面做错了什么。我不想使用本机,即(nativeQuery=true)使用这个。

  • 我开始制作一个简单的spring boot应用程序。 我的第一步是利用Spring JDBC支持,使用默认的H2内存数据库。对于示例数据,我在src/main/resources中有schema.sql和data.sql。 所以当spring启动时,它也会执行这两个脚本并填充H2数据库,我可以通过H2控制台访问它。

  • 我使用Jooq-3.1.0在Spring-4中为Oracle和Postgresql生成和执行动态查询。在一个场景中,我有一个分区表,我需要使用JOOQ查询它。我使用,其中是在查询生成方法中作为字符串接收的字符串,例如。(模式对于不同的数据库不同,并且在外部属性文件中配置)。JOOQ生成sql,但在表名周围使用双引号。如下所示的查询和错误 查询

  • 我对Spring中的原生查询有一个问题。我在param value中使用了带有参数nativequery=true注释@query和SQL查询。 而在RezerWacjamanager.java中: 问题是什么时候调用方法RezerWacjadao.getDoStepnosCnatypy(dataOd,dataDo)并执行此查询。我得到一个错误错误: DoStepNosCtypyListdTo.j

  • 这里的问题是映射,我需要强制转换结果或手动检查一切。即使有更好的映射能力,我也不敢相信没有更好的方法来做到这一点。 我也试过这样做:https://stackoverflow.com/a/36329166/840315,但您需要将类路径硬编码到查询中以使其工作,而且我仍然需要将对象映射到不可变的对象。 使用JdbcTemplate,您可以使用(src): spring data JPA是否有类似的

  • 我仍然是java和spring的初学者,我已经在mysql中存储了一个名为< code>Offers的表,我试图逐行获取数据< code >其中Status == 0,我的表看起来像这样: 当我尝试运行我的代码时,它的返回 org.springframework.beans.factory。BeanCreationException:创建在类路径资源[org/springframework/boo