gpt4 book ai didi

java - 如何在 Play! 中插入大量实体?工作?

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:43 25 4
gpt4 key购买 nike

在我的应用程序中,我必须模拟各种情况进行分析。因此,将(非常)大量的行插入到数据库中。 (我们说的是非常大量的数据……几十亿)

型号

@Entity
public class Case extends Model {

public String url;
}

工作

public class Simulator extends Job {

public void doJob() {

for (int i = 0; i !=) {

// Somestuff

new Case(someString).save();
}
}
}

半小时后,数据库中仍然没有任何内容。但是调试跟踪显示 Play 插入了一些东西。我怀疑这是某种缓存。

我已经尝试了一切:

Model.em().flush();

什么都不改变。

Model.em().getTransaction().commit();

抛出 TransactionRequiredException occured : no transaction is in progress

Model.em().setFlushMode(FlushModeType.COMMIT);
Model.em().setFlushMode(FlushModeType.AUTO);

什么都不改变。

我还在各处尝试了 @NoTransaction 注释:

  • Controller 中的类和函数
  • 类(class)案例
  • 覆盖模型中的保存方法
  • 我工作的类别和职能

变得非常绝望。欢迎各种建议。

编辑:经过一些研究,第一行出现在数据库中。关联的 ID 约为 550.000。这意味着我的应用程序和数据库之间有大约一百万行。

最佳答案

尝试

em.getTransaction().begin();
em.persist(model);
em.getTransaction().commit();

您不能在开始之前提交事务。

关于java - 如何在 Play! 中插入大量实体?工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com