当前位置: 首页 > 知识库问答 >
问题:

如何在spring中使用一个函数保存多行数据

东方志尚
2023-03-14
public ModelAndView postMethod(
        @ModelAttribute("attribute") ) throws Exception {
    ModelAndView mav = new ModelAndView("jsp");
    Date todayDate = new Date();
    Session session = null;
    Transaction transaction = null;
    if (issue_vendor.getOutward_item_code1() != null) {
        transaction = session.beginTransaction();
        session = sessionFactory.openSession();
        Query query = session.createQuery("FROM stock_register_dto where item_code=:code order by date desc");
        query.setInteger("code", issue_vendor.getOutward_item_code1());
        query.setMaxResults(1);
        List<stock_register_dto> list = query.list();
        System.out.println("result: " + list);
        for (stock_register_dto check : list) {
            Integer code1 = check.getItem_code();
            Integer stock1 = check.getStock();
            if (code1 == issue_vendor.getOutward_item_code1() && stock1 >= issue_vendor.getQuantity_issued1()) {
                this.master_service.saveRequirement(dto);
                session.flush();
                session.clear();
            }
        }
    }
    if (issue_vendor.getOutward_item_code2() != null) {

        transaction = session.beginTransaction();
        session = sessionFactory.openSession();
        Query query = session.createQuery("FROM stock_register_dto where item_code=:code order by date desc");
        query.setInteger("code", issue_vendor.getOutward_item_code2());
        query.setMaxResults(1);
        List<stock_register_dto> list = query.list();
        System.out.println("result: " + list);
        for (stock_register_dto check : html" target="_blank">list) {
            Integer code1 = check.getItem_code();
            Integer stock1 = check.getStock();
            if (code1 == issue_vendor.getOutward_item_code2() && stock1 >= issue_vendor.getQuantity_issued2()) {
                this.master_service.saveRequirement(dto);
                session.flush();
                session.clear();
            }
        }
    }
return mav;
}

类型异常报告

消息请求处理失败;嵌套异常是java.lang.NullPointerException

说明服务器遇到内部错误,导致它无法完成此请求。

例外情况

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为java.lang.nullpointerexception org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:982)org.springframework.web.servlet.frameworkservlet.doPost(frameworkservlet.java:872)javax.servlet.service(httpservlet.java:650)org.springframework.web.servet.frameworkservet.service(

根本原因

java.lang.nullPointerException com.stock_issuance.controller.stock_issuance_controller.saveStock4(Sock_issuance_controller.java:118)Sun.Reflect.NativeMethodAccessorImpl.Invoke0(本机方法)al(RequestMappingHandlerAdapter.java:738)org.springFramework.web.servlet.mvc.method.abstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)org.springFramework.web.servlet.dispatch(DispatcherServlet.java:963)org.springFramework.web.servlet.dispatcherServlet.doService(DispatcherServlet.java:897)

注意,Apache Tomcat/7.0.68日志中提供了根本原因的完整堆栈跟踪。

共有1个答案

蔚弘量
2023-03-14

您可以像下面这样使用hibernate批处理。

在hibernate配置文件中设置属性

hibernate.jdbc.batch_size 20

然后使用如下代码

Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();

for ( int i=0; i<100000; i++ ) {
    stock_register_dto dto = new stock_register_dto (....);
    session.save(dto);
    if ( i % 20 == 0 ) { //20, same as the JDBC batch size
        //flush a batch of inserts and release memory the memory
        session.flush();
        session.clear();
    }
}

transaction.commit();
session.close();
 类似资料:
  • 我想使用JavaFx、Spring Boot和Spring Data JPA制作一个桌面应用程序,并将H2作为我的数据库。问题是我试图运行JUnit以将数据保存在本地目录中,但每次运行JUnit时数据都会丢失。 我的文件; 我的测试用例; 打印列表的大小是1,但当我再次像这样运行测试用例时 它打印的列表大小为0

  • 问题内容: 我是Redis的新手,但是有一个与备份有关的问题。 现在,我有一个实例在Windows服务器上运行。在此实例内部,我目前有一个“作业”,可将数据存储在一个数据库中。我不希望备份这些数据。 我必须创造一份新工作。我的第一个想法是将数据存储在另一个数据库中,但是在同一实例上。然后,我将在此数据库ID上激活RDB备份。 但是,当我阅读redis文档时,会看到以下命令进行备份: 此命令仅备份当

  • 我正在尝试在Spring Data Repository的nativeQuery中使用oracle的NVL函数。 当我在参数中传递值时,它会抛出异常如果我在“programId”中传递有效值,那么它工作正常。 例外情况:

  • 我想继续将此函数应用于我的所有数据页,例如。df1,df2,df3...DF100。输出文件应保持相同的dataframe类型和名称。 lapply函数不起作用,因为它返回一个列表,而不是单独的数据帧。

  • 本文向大家介绍如何在Java中使用一个或多个参数实现构造函数引用,包括了如何在Java中使用一个或多个参数实现构造函数引用的使用技巧和注意事项,需要的朋友参考一下 方法引用也可以适用于Java 8中的构造函数。可以使用类名和new关键字创建构造函数引用。 可以将构造函数引用分配给任何定义与该构造函数兼容的方法的功能接口引用。 语法 具有一个参数的构造函数引用示例 输出结果 具有两个参数的构造函数引

  • spring boot jpa/hibernate中的一个简单保存在数据库中保存了一行空值。 @Repository公共接口用户存储库扩展了分页和排序存储库 { } 我的用户表中的每一列都可以为空,因此允许在这种状态下保存记录。我通过手动对数据库执行等效查询来检查这一点。 有人有什么想法吗?