Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Java 春季MVC:@ManyToMany刀?_Java_Hibernate_Spring Mvc_Many To Many_Dao - Fatal编程技术网

Java 春季MVC:@ManyToMany刀?

Java 春季MVC:@ManyToMany刀?,java,hibernate,spring-mvc,many-to-many,dao,Java,Hibernate,Spring Mvc,Many To Many,Dao,在我的应用程序中,我试图创建与其他字段的多对多关系 遵循本教程: 我想知道最佳实践中关于将与此关系相关的DAO方法放在何处的说明 最好为关联创建特定的dao(例如StockCategoryDAO),还是将方法放在StockDAO/类别中? 例如,我在思考这个问题时感到困惑: ex.1-一种给我所有与某个类别相关的股票的方法。。。 我不需要它,因为我已经在类别模型类中有了getter。。。对吧? ex.2-我将在Stock面板下有一个页面,在那里我将选择(复选框)哪些类别 与此库存关联(该库存已

在我的应用程序中,我试图创建与其他字段的多对多关系 遵循本教程:

我想知道最佳实践中关于将与此关系相关的DAO方法放在何处的说明

最好为关联创建特定的dao(例如StockCategoryDAO),还是将方法放在StockDAO/类别中?

例如,我在思考这个问题时感到困惑:

ex.1-一种给我所有与某个类别相关的股票的方法。。。 我不需要它,因为我已经在类别模型类中有了getter。。。对吧?

ex.2-我将在Stock面板下有一个页面,在那里我将选择(复选框)哪些类别 与此库存关联(该库存已存在于数据库中)
提交之后,在控制器中,我将获得所有选中的复选框(如果您知道如何执行此操作,欢迎使用),并且我必须调用一个服务方法(封装我的dao)来插入 协会。
在这种情况下,最好使用Stock类的setter,然后是一个
session.update(Stock)
,还是对所选的每个类别使用StockCategoryService.addCategoryService(…)


感谢您的建议

我认为基本设计应该是“每个模型类都应该有自己的DAO类,它定义了所有在特定模型上运行的方法”。这也包括所有的getter

DAO方法基于模型

因此,您需要将股票的所有getter方法都放在StockDAO类中

如果您使用的是jdbctemplate,并且希望返回自定义对象,则可以将RowMapper类定义为DAO类中的内部类

我建议您使用JdbcTemplate类。这将最小化DAO类中的代码

在此,我列出了执行此实施的步骤:

  • 在spring.xml中声明JDBCTemplatebean,并将数据源bean作为属性注入JDBCTemplatebean
  • (因此,在初始化过程中,JdbcTemplate是使用正确的数据源创建的)

  • 为每个模型实现DAO类。定义DAO类中的所有方法(包括getter)

  • 如果getter方法返回自定义对象,则在DAO类中将rowMapper类实现为内部类。 (实现rowMapper为jdbcTemplate提供了一种关于结果集的感觉)


  • relationship类是一个很好的模式,它可能会使您免于其他麻烦,例如在何处保存和引用特定于关系的元数据(您提到的其他字段)。如果存在与关系相关联的字段,那么它们不属于关系两侧的对象,而属于关系本身,因此这需要用java以某种方式表示。这意味着您实际上没有多对多的关系,而是有多对一对多的关系。在本教程中,将介绍如何为每个实体和多对一对多实体类编写模型类。但我的问题集中在dao类上。顺便说一句,你的评论帮助我更好地理解了多对多关系。谢谢你的解释。为了清晰的代码和良好的组织,我认为最好为每个模型编写一个DAO。顺便说一句,我使用的是hibernate,所以我认为jdbcTemplate不适合我。。。是吗?是的,没错!对于hibernate,您可以使用HibernateDAO支持类我在为这种多对多关系创建带有复选框的表单时遇到了很大的困难。。我写了一个关于这个的问题。。如果有人能看一看,我会很高兴的