Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 约克。如何在一个事务中使用insertInto()将多个字段记录到DB_Java_Sql_Transactions_Jooq_Insert Into - Fatal编程技术网

Java 约克。如何在一个事务中使用insertInto()将多个字段记录到DB

Java 约克。如何在一个事务中使用insertInto()将多个字段记录到DB,java,sql,transactions,jooq,insert-into,Java,Sql,Transactions,Jooq,Insert Into,我需要为某些表的多个未指定字段创建一个事务,并执行.insertInto()。我有一个问题,事务运行成功,但没有存储任何记录。我认为root子句没有正确执行.insertInto()方法,或者DSLContext与包装器配置的交互失败。如果有任何建议,我将不胜感激 我有两个类中的两个方法(表处理和DAL)。事务创建和发送到DAL类字段以插入的第一步。第二,DAL类,用于插入新字段 public Boolean insertToMainDB(List<TableForMainDb&g

我需要为某些表的多个未指定字段创建一个事务,并执行.insertInto()。我有一个问题,事务运行成功,但没有存储任何记录。我认为root子句没有正确执行.insertInto()方法,或者DSLContext与包装器配置的交互失败。如果有任何建议,我将不胜感激

我有两个类中的两个方法(表处理和DAL)。事务创建和发送到DAL类字段以插入的第一步。第二,DAL类,用于插入新字段

    public Boolean insertToMainDB(List<TableForMainDb> mainTables) throws AppDataAccessLayerException {
    Boolean InsertTransactSuccessFlag = false;
    try {
        TransactionalCallable <Boolean> transactional = new TransactionalCallable<Boolean>() {
            @Override
            public Boolean run(Configuration configuration) throws Exception {
                for (TableForMainDb table : mainTables) {
                    table.getRecorder().recordToDB(table, configuration);
                 }
                return true; 

            }   
        };
        InsertTransactSuccessFlag = context.transactionResult(transactional);
        } catch (DataAccessException ex) {
        throw new AppDataAccessLayerException(ex);
        }
    return InsertTransactSuccessFlag;
    }
事务运行成功,但未将记录插入数据库

在调试模式下,我看到DSLContext配置的对象已满,并且包含插入日期的记录(字段)。 垃圾堆在下面。事务性字段在上下文中为false

配置 默认配置[ 连接=真, 事务性=真, 方言=博士后, 数据={org.jooq.configuration..}, 设置=

DSLContext 默认配置[ 连接=真, 事务性=假, 方言=博士后, 数据={},
设置=…

您永远不会要求您的声明

感谢卢卡斯的评论和伟大的JOOQ

我们将insert实现为

    .insertInto(Table<Record>, Fields[], Object[] ).execute()

您好。这是您的解决方案吗?或者您是想编辑您的问题吗?我不确定您是否还需要任何帮助…您好Lukas,是的,它可以工作,我有点想知道我是否可以调用.insertInto(),将字段数组[]作为参数,也许它将有助于添加到doc.Hmm。您认为缺少什么?
    .insertInto(Table<Record>, Fields[], Object[] ).execute()
            DSL.using(configuration).insertInto(DSL.table(tableName), 
                                        fieldsAndValuesObject.getArrayAllFields())
                                        .values(fieldsAndValuesObject.getArrayAllValues()
                                        )
                                        .execute();