【问题标题】:Copy all records from Master table to a Clone table using hibernate使用休眠将所有记录从主表复制到克隆表
【发布时间】:2017-06-30 06:43:46
【问题描述】:

使用 SQL,我可以将数据从一个表复制到另一个镜像表。 (例如 insert into TABLE_EXAMPLE_COPY select * from TABLE_EXAMPLE; 。 如何使用 Hibernate org.hibernate.Criteriaorg.hibernate.Queryorg.hibernate.SQLQuery 做同样的事情?

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:

    如果您想在 JPA 或 Hibernate 的范围内执行该操作,最好的方法是使用 Native SQL 语句。

    session
      .createNativeQuery( "INSERT INTO table_copy SELECT * FROM table" ).
      .executeUpdate();
    

    其他选项包括将源表读入 POJO,然后将其转换为复制表的 POJO 表示形式并保存这些行。这些问题在于,您还引入了网络延迟和 JVM 开销,只是为了创建一个内存对象、对其进行转换,然后通过网络将其推送回数据库。

    上述解决方案避免了所有这些缺点,并允许数据库以它知道的最佳性能方式处理所有这些问题。

    【讨论】:

    • 是的,我很担心在流程后面创建的 POJO,每个 POJO 有 62 个属性,并且有 5000 - 600,000 个 POJO 需要克隆。所以,谢谢你的好建议。
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2014-11-12
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多