java 仅对字段进行布尔检查的Spring JPA分页

drnojrws  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(141)

我有一个名为Skill的实体,它的is_deleted布尔值默认为false

@Repository
public interface SkillRepository extends JpaRepository<Skill, Long> {
    Page<Skill> findAllByOrderByDisplayOrderAsc(Pageable pageable);
}

我想过滤掉分页为is_deleted的技能。怎么做?谢谢。

6l7fqoea

6l7fqoea1#

假设属性如下所示:

boolean deleted

public boolean isDeleted(){
    return deleted;
}

public void setDeleted(boolean deleted) {
    this.deleted = deleted;
}

以下方法应该有效。

public interface SkillRepository extends JpaRepository<Skill, Long> {
    Page<Skill> findAllByDeletedIsFalseOrderByDisplayOrderAsc(Pageable pageable);
}

如果您的属性实际上命名为is_deleted,而不仅仅是列,那么事情可能会变得棘手,我强烈建议改用标准的Java命名约定。
您可以在此处找到可能的 predicate 列表:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#appendix.query.method.predicate

d6kp6zgx

d6kp6zgx2#

您可以使用模型类中的@Column注解将字段Map到is_deleted列,并在存储库方法中使用该字段。
在你的技能类(模型)中添加类似这样的内容

...
@Column(name = "is_deleted")
boolean deleted;
...

然后您可以使用字段在存储库中搜索,如下所示:

Page<Skill> findByDeleted(boolean isDeleted, Pageable pageable);

相关问题