这是我的存储库
public interface NoteRepository extends JpaRepository<Note,Long> {
List<Note> findByContentContains(String content);
和我在NoteController类中使用&#34; e&#34;在内容
列中@GetMapping("/notesletter")
public List<String> getLetters(){
return noteRepository.findByContentContains("e")
.stream()
.map(note -> note.getContent())
.collect(Collectors.toList());
}
请帮助我找一个方法,它会返回每个单词的字母&#34; e&#34;例如,从所有列返回。 我正在和Postman一起工作
答案 0 :(得分:1)
您可以尝试使用方法名称中的或操作,如下所示。 或者findByLastnameOrFirstname
https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html
其他方法也是可能的。
如果您知道本机查询或JPQL等效项,则返回检查实体的所有列的结果。
使用
存储库接口中方法上方的如果您知道查询,也可以使用
@Query
可以采用JPQL或本机查询。
@NamedQuery
注释。这个注释要在Entity类上使用,name属性用于指定返回数据的访问方法名称,这可以在存储库接口中使用。
答案 1 :(得分:1)
当然,您可以进行原生查询
@Query("select u from Note u where u.COL1 = ?1 and u.COL2 = ?1")
List<Note> findByContentContains(String content)
或使用下面给出的jpa特性,注意提到findByLastnameOrFirstnameStartingWith很容易理解,所以分别将你的名字,姓氏替换为colu1name,col2name。Refer here for more jpa method conventions`
public interface NoteRepository extends JpaRepository<Note,Long> {
List<Note> findByLastnameOrFirstnameStartingWith(String param1,String param2)
static List<Note> findByContentContains(String content){
findByLastnameOrFirstnameStartingWith(content,content);
}
}