gpt4 book ai didi

java - Hibernate:无法在进程之间查看 MYSQL 中的持久数据

转载 作者:行者123 更新时间:2023-11-29 05:11:15 27 4
gpt4 key购买 nike

我不是铁杆 Hibernate 程序员。

创建一个原生查询返回批量数据百万条记录:

return super.em.createNativeQuery(query).getResultList();

获取数据并构建使用 DAO in Loop 持久化的对象,其中有 100 万个持久化。

persist(object)

当我同时在表上运行选择查询时,它显示 0 个结果。

Select count(*) from Audit_Log;

成功插入所有记录后,MySQL 显示结果。

早些时候,我被命名为从 DAO 中获取值的查询,它运行良好。现在我选择了 native 查询并得到了这种行为。有什么我需要改变的吗?

代码:

public abstract class GenericDaoImpl<T, PK> implements GenericDao<T, PK>     {
@Override
public T create(final T t) {
this.em.persist(t);
return t;
}

@Override
public void flush() {
org.hibernate.Session session = (org.hibernate.Session)em.getDelegate();
session.flush();

}

道:

  @Override
public Person create(Person person) {
return (Person) create((MainRecord) person);
}

最佳答案

您是否在单个事务中保留 10L(又名 1M)记录?貌似就是这种情况。现在,由于 TX 已打开相当长的一段时间,因此在 TOAD(或任何其他 SQL 客户端)上触发查询不会返回它,因为数据尚未提交到数据库中。

尝试刷新中间的数据。

此外,我希望您在 hibernate 和驱动程序级别上使用批处理。我无法在不进行批处理的情况下保留 1M 条记录。

关于java - Hibernate:无法在进程之间查看 MYSQL 中的持久数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39092676/

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