JPA相当于这个mySql查询

时间:2018-01-04 13:05:22

标签: java mysql jpa

我想写一个JPA等效的MySQL查询。

SELECT status, is_deleted  FROM indent 
WHERE status = "in progress" AND is_deleted = false;

在上面的查询中,statusis_deleted是表格和值的列名(此处为statusis_deleted,值为{{1} }& in progress分别是变量。

false

2 个答案:

答案 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来表示参数,并使用:(冒号)来引用参数。