在DAO级别(Hibernate / JPA)中实现检索布尔值的方法的最佳实践是什么?
返回值列表并检查null或isEmpty()或
一次返回布尔值
(代码是虚构的,在现实世界中没有任何相似之处)
@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
另一方面,当您返回一个集合时,它首先应该通过网络传递很多值并将所有属性映射到您的实体类-这些操作很耗时