【发布时间】:2021-08-03 21:25:16
【问题描述】:
使其更加清晰易懂。假设我有用户实体,它有名字、第二名和电子邮件参数。甚至可以说,在前端我有一个表单,可以根据这些参数(姓名、第二名、电子邮件)过滤我的搜索,但如果我愿意,我可以选择将其中一些留空,或者全部填写。我的后端应该如何处理这样的事情?
@Query(
value = "SELECT * FROM utenti u WHERE"
+ " u.nome = :nome"
+ "AND u.cognome = :cognome"
+ "AND u.codice_fiscale = :codiceFiscale"
)
public List<Utente> findByFilter(
@Param("nome") String nome,
@Param("cognome") String cognome,
@Param("codiceFiscale")String codiceFiscale);
}
我正在尝试编写查询,并且我想在 if(x!='') 语句中关闭每个“AND x = :x”,但我认为这甚至不可能,有什么想法吗?
【问题讨论】:
-
有多种方法可以做到这一点,每一种都有自己的优点和缺点,但是你有一个问题,你的
AND关键字之前没有空格,这会导致两个方面的错误。请注意,因为您将得到的第一个错误是没有这样的参数nome
标签: spring hibernate jpa filter repository