Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 将DAO依赖注入到另一个DAO类中,这是一个好的实践吗?_Spring_Model View Controller_Dependencies_Code Injection - Fatal编程技术网

Spring 将DAO依赖注入到另一个DAO类中,这是一个好的实践吗?

Spring 将DAO依赖注入到另一个DAO类中,这是一个好的实践吗?,spring,model-view-controller,dependencies,code-injection,Spring,Model View Controller,Dependencies,Code Injection,我正在使用SpringMVC编写一个web应用程序(新闻发布)。我现在的情况是,我认为有必要在另一个DAO类中注入DAO依赖项。我的情况是: 从数据库检索文章列表时,我希望显示文章的作者姓名及其所属的类别名称。但是,我的数据库设计的模式是,文章实体只包含其作者和类别的id。例如,下面列出了2篇文章: **Article ID Title Author Category** 1 Test Title 1 2 4 2

我正在使用SpringMVC编写一个web应用程序(新闻发布)。我现在的情况是,我认为有必要在另一个DAO类中注入DAO依赖项。我的情况是:

从数据库检索文章列表时,我希望显示文章的作者姓名及其所属的类别名称。但是,我的数据库设计的模式是,文章实体只包含其作者和类别的id。例如,下面列出了2篇文章:

**Article ID    Title           Author    Category**
1            Test Title 1      2          4
2            Test Title 2      3          4
为了生成这个列表,我在ArticleDAO类中有一个名为“getAllArticles()”的方法。此外,我对文章实体有两个@Transient属性,它们是authorName和categoryName。我正在考虑通过注入CategoryDAO和AuthorDAO的依赖项来检索“getAllArticles()”中的authorName和categoryName。因此,我基本上可以做到以下几点:

for (Article article : articles)
{
    article.setAuthorName(authorDao.getAuthorNameById(article.getAuthorId()));
    article.setCategoryName(categoryDao.getCategoryNameById(article.getCategoryId()));
}
然后在我的模板中,我可以简单地循环浏览文章并打印出文章的作者姓名和类别名称


然而,在对我的DAO类进行更改之前,我想确认将DAO依赖注入另一个DAO类是否是一个好的实践。谢谢你的回复。

为什么你还需要另一把刀呢?为什么不简单地修改查询以连接其他表以访问所需的数据?如果不是,您可能会遇到1+N(1个查询以获取每篇文章的文章并获取作者)选择问题。可以看出,我缺少SQL:)