【问题标题】:JpaRepository findBy booleanJpaRepository findBy boolean
【发布时间】:2020-03-16 15:36:11
【问题描述】:

我正在实现一个 API 来返回所有标记的用户(布尔值 true)。我是 Spring Boot 的新手,我想知道在 UserDAO 上实现该方法的最佳方法是什么

该 DAO 方法是否有意义,我想返回一个 LIST 一个 Users 并将 FLAG 设置为 true。

用户

@Entity
@Table(name = "user", schema = "public")
public class User {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "userid", nullable = false)
  private Long userId;

 @Column(name = "flag")
  private Boolean flag;
  public Boolean getFlag() {
    return flag;
  }

  public void setFlag(Boolean flag) {
    this.flag = flag;
  }

DAO

@Repository
public interface UserDao extends JpaRepository<User, Long> {
    List<User> findByRoleId(Integer roleId);

服务

  public Execution<User> getFlaggedUsers() {
    Execution<User> res;
    try {
      List<User> users = userDao.findUsersByFlag();
      res = new Execution<>(ResultEnum.SUCCESS, users);
    } catch (Exception e) {
      res = new Execution<>(ResultEnum.INNER_ERROR);
    }
    return res;
  }

控制器

@GetMapping("/flagged_users")
public Map<String, Object> getFlaggedUsers() throws InternalException {
    Map<String, Object> resultMap = new HashMap<>();
    try {
        Execution<User> res = userService.getFlaggedUsers();
        resultMap.put(Constants.USER.getStatusCode(), res.getObjects());
    } catch (Exception e) {
        throw new InternalException(e.getMessage());
    }
    return resultMap;
}

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    你的 DAO 方法应该是

    List&lt;User&gt; findByFlag(boolean flag) 你可以在其中传递所需的标志。

    或者

    List&lt;User&gt; findByFlagTrue() 将返回 flag = true 的所有用户。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 2018-05-11
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2013-09-18
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多