我尝试根据两种状态查询表格,例如status1或status2。我应该如何使用Spring JPA在一个SQL语句中实现。
ws = consultSessionRepository.findByShareIdAndStatus(consultId,
consultStatus.active);
public interface ConsultSessionRepository extends JpaRepository<consultSession, Long> {
@Query("select ws from consultSession ws where consultId = ?")
consultSession findByconsultid(String consultId);
@Query("select ws from consultSession ws where shareId = ?")
List<consultSession> findByShareId(String shareId);
consultSession findByShareIdAndStatus(String shareId, consultStatus satus);
}
尝试实现以下内容
select * from consultSession where status in ('ACTIVE', 'ACTIVE1') and shareid = '<share id>
答案 0 :(得分:2)
您可以使用方法名称构建查询,该方法名称遵循以下文档中提到的规则,如下所示:
consultSession findByShareIdAndStatusIn(String shareId, consultStatus... states);
或使用@Query
注释,这是恕我直言更可读:
@Query("FROM consultSession cs WHERE shareId = ?1 AND status IN (?2)")
List<Foo> find(String shareId, consultStatus... states);
顺便说一下,我认为这个consultId in ('ACTIVE', 'ACTIVE1')
是一个拼写错误,应该是status
而不是consultId
。