【问题标题】:Best practices for boolean methods in DAO levelDAO 级别布尔方法的最佳实践
【发布时间】:2018-03-21 16:03:01
【问题描述】:

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

  1. 返回值列表并检查 null 或 isEmpty() 或
  2. 立即返回布尔值

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

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

}

提前致谢!

【问题讨论】:

    标签: java spring hibernate jpa dao


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的反馈。如果我正确理解你最好使用这个方法:boolean isContainsUsers()
    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2015-07-14
    • 2010-12-18
    • 1970-01-01
    相关资源
    最近更新 更多