在DAO层中使用注释@repository的正确格式应该是什么?

时间:2014-11-07 09:47:32

标签: java spring dao

@Repository还是@Repository("DAOname")

哪个合适?为什么?

关于DAO层中更新和删除方法的一个主要疑问! 在DAO层中使用逻辑是否安全?

我是说, 例如: DAO层

@Transactional
public void deleteMethod(List list)
  {
  for(list)
  {
    deleteNamedQuery(list);
  }
}

2 个答案:

答案 0 :(得分:3)

@Repository
public class UserDAO {}

在这种情况下,如果您执行<context:component-scan base-package="your.package" />,则bean将被命名为&#34; userDAO&#34;

@Repository("userRepository")
public class UserDAO {}
在这种情况下,

将被命名为&#34; userRepository&#34;。用几句话来说两种解决方案都是合适的,取决于你如何使用它。

我建议你不要在你的DAO中添加业务逻辑来维护关注点分离。 See this link,另外

  

数据访问对象(DAO)是提供摘要的对象   接口到某种类型的数据库或其他持久性机制。

See this link

答案 1 :(得分:0)

服务层(将迭代逻辑投入使用)

@Override
    public void deleteCheckedItems(List<Integer> selectdIdForDeletion, String userid) {
        try
        {
            for(Integer id:selectdIdForDeletion)
            {
                dao.deleteMethod(id, userid);  // called DAO method for delete
            }
        }catch(Exception e)
        {
            logger.info(e);
        }

    }

DAO Layer(删除了迭代删除逻辑)

@Transactional
public void deleteMethod(String id,String userid)
  {

    deleteNamedQuery(id,userid);

}