我想写一个JPA
等效的MySQL查询。
SELECT status, is_deleted FROM indent
WHERE status = "in progress" AND is_deleted = false;
在上面的查询中,status
和is_deleted
是表格和值的列名(此处为status
和is_deleted
,值为{{1} }& in progress
分别是变量。
false
答案 0 :(得分:0)
您编写查询的方式,初看起来似乎 INCORRECT ,因为i.status
被分配了一个字符串值,这正是status AND is_deleted =
和condition
单词对于查询是错误的,因为它们不适合Java中String
的规则。
您可以使用namedQueries
,这在开发的早期阶段会更好,更容易理解。
Here是您如何使用namedQueries
。
答案 1 :(得分:0)
@Query("SELECT i.status FROM indent i where i.status = :status AND i.is_deleted = :condition")
List<Indent> getByStatusAndIsDeleted(@Param ("status") String status,@Param ("condition") boolean condition);
问题在于使用'(单引号)来引用参数,它将其后面的所有内容视为参数 因此,我使用org.springframework.data.repository.query.Param来表示参数,并使用:(冒号)来引用参数。