【问题标题】:Save multiple row data and some other data into two tables simultaneously in spring hibernate在spring hibernate中同时将多行数据和一些其他数据保存到两个表中
【发布时间】:2016-08-29 12:15:36
【问题描述】:

我想将一个表单的数据同时保存到两个表中。该表单包含多个相同的行,其中包含一些字段,例如

item,unit,unit_price,total。

1.) 在表 1 中,我想保存一些数据,例如 id(自动生成,主键)、日期、创建者。

2.) 在table2中我想保存id(自动生成,主键),fid(table1的id,外键),item,unit,unit price,total。请记住,在 table2 中,将从表单数据中保存多行。

我想不通。请帮我提供一个有效的分步示例,请不要使用静态或预定义数据,仅从表单中获取数据。

【问题讨论】:

    标签: spring hibernate


    【解决方案1】:

    您的表单是网页上的 HTML 表单吗?您正在编写 Spring MVC 应用程序吗?您是否设置了 Spring Security 或其他一些身份验证机制,以便您知道用户是谁?如果是这样,这是一种方法:

    • 使用字段 id、unit、unit-price、total、creator、currentDate 定义一个普通的旧 Java 对象 (POJO);也许你会把它命名为 Item。
    • 定义另一个普通的旧 Java 对象,可能名为“ItemHistory”,具有自己的 ID 和对项目的引用。
    • 在第一个 POJO(“Item”)中包含对 ItemHistorys 列表的引用。
    • 使用 Hibernate/JPA 注释对这两个类进行注释,以便 Item 与 ItemHistory 具有 OneToMany 关系。
    • 定义一个 Spring MVC 控制器,方法注解为 POST 方法,一个 Item 作为一个参数,一个 Authentication 作为另一个参数(假设你配置了 Spring Security,Authentication 将自动填充当前的身份- 登录用户。在此方法中,将 Item 的 currentDate 和 author 设置为当前日期和 Authentication 参数中的 principal。如果是新 Item(还没有 id),则添加第一个 ItemHistory 作为副本项目本身。如果它是现有项目,请根据需要添加另一个 ItemHistory。
    • 定义一个 Spring bean,可能命名为 ItemService,它带有一个注解为事务性的方法,它接受一个 Item 并保存它。从 REST 控制器调用此 bean。这样的 Spring bean 称为 DAO(数据访问对象)。

    还有其他策略,但如果您已经根据需要配置了 Spring MVC、Spring Security 和 Hibernate/JPA,那么这个策略非常简单。

    【讨论】:

    • 表单是来自网页的html,我正在编写一个spring mvc应用程序。我有两个 POJO 类,一个是包含(id、日期和创建者)字段的 BudgetMaster,另一个是包含(id、fid、item_id、unit、unit_price、total)字段的 BudgetSummery。是的,它有一对多的关系。你能提供任何工作示例代码吗??
    • 您需要哪个方面的工作示例 - JPA 注释?弹簧安全配置?控制器/DAO 交互?所有这些,还是别的什么?
    • 控制器/DAO与hibernate交互
    • 嗯,这是我们典型的控制器代码......抱歉,我在 Stack Overflow cmets 上遇到了困难。将尝试添加新答案。
    • 我使用的典型控制器代码在这里:gist.github.com/anonymous/fb41b7ae32777f78297e8ad504ecf22c。我使用 XML 配置,因此我们将有一个注入 SaveItemService 的 XML 文件。将在一分钟内发布更多...我希望它会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多