实现在DAO级别(Hibernate / JPA)中检索布尔值的方法的最佳实践是什么。
(代码是虚构的,在现实世界中没有任何相似性)
@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);
}
}
提前致谢!
答案 0 :(得分:3)
一次返回布尔值应该更快,因为你可以编写一个好的查询,例如:
select count(*) != 0 from table t where t.id in :ids
另一方面,当您返回一个集合时,它应该首先通过网络传递大量值并将所有属性映射到您的实体类 - 这些操作非常耗时