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

时间:2017-10-10 09:40:31

标签: java spring hibernate jpa dao

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

  1. 返回值列表并检查null或isEmpty()或
  2. 立即返回布尔值
  3. 代码是虚构的,在现实世界中没有任何相似性

    @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);
        }
    
    }
    

    提前致谢!

1 个答案:

答案 0 :(得分:3)

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

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

另一方面,当您返回一个集合时,它应该首先通过网络传递大量值并将所有属性映射到您的实体类 - 这些操作非常耗时