DAO 级别布尔方法的最佳实践

Best practices for boolean methods in DAO level

在 DAO 级别 (Hibernate/JPA) 中实现检索 布尔值 的方法的最佳实践是什么。

  1. Return 值列表并检查 null 或 isEmpty() 或
  2. Return 一次布尔值

(代码是虚构的,与现实世界没有任何相似之处)

@Repository
public interface UserDao  {

    User getUsersById(List<Integer> userIds);

    boolean isContainsUsers(List<Integer> userIds);
}

@Service
public class UserService{

    @Autowired 
    UserDao userDao;

    public void doBusinessLogicWithUser(List<Integer> userIds){

       boolean isContainsUsers = userDao.getUserById(userIds).isEmpty();

       boolean isContainsUsers = userDao.isContainsUsers(userIds);
    }

}

提前致谢!

立即返回布尔值应该会更快,因为您可以编写一个好的查询,例如:

select count(*) != 0 from table t where t.id in :ids

另一方面,当你return一个集合时,它应该首先通过网络传递很多值并将所有属性映射到你的实体class - 这些操作很耗时