Hibernate Postgres慢速插入



我尝试使用JPA/Hibernate/Postgres将数据插入Postgres。数据将从CSV文件中解析,然后应将数据保存到Postgres数据库中。持续数据的代码如下:

        @Autowired
    KundeRepository repo;
    @Transactional
    public void safe(Kunde kd) {
        repo.save(kd);
    } 
 public void safeAll(Iterable<Kunde> kt) {
        repo.save(kt);
        repo.flush();
    }

实体外观如下

public class account implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    }
    @ManyToOne
    Kunde kunde;
    @OneToMany
    List<TransaktionsGruppe> gruppen;

       @Entity
@Table(name = "kunde")
@NoArgsConstructor
public class Kunde implements Serializable {
    public static final String kundennummerKey = "KUNDENNUMMER";
    private static final long serialVersionUID = 1L;
    @Id
    @Getter
    @Setter
    private String id;  
    @OneToMany
    List<Account> accounts;

    @Entity
@Table(name = "transaktionsgruppe")
public class Transaktionsgruppe  implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @ManyToOne
    Account acc;
    private String bezeichnung;

现在,当我将集合传递给Safeall方法时,插入物确实很慢。特别是它似乎称为每插入的冬眠顺序。有没有办法加快事情的速度?

我的配置看起来如下:

datasource:
       type: com.zaxxer.hikari.HikariDataSource
       url: dburl
       username: user
       password: pw
       hikari:
         validation-timeout: 10000
         health-check-properties: {"connectivityCheckTimeoutMs","1000"}
jpa:
    show-sql: true
    properties:
        hibernate.cache.use_second_level_cache: false
        hibernate.cache.use_query_cache: false
        hibernate.generate_statistics: false
        hibernate.jdbc.batch.size: 100
        hibernate.order_inserts: true+

启用了当前Show-SQL。总体大约是60000个实体,需要超过20分钟。招待大小

很小

您的safeAll()方法未用@Transactional注释,因此Spring打开并关闭列表中每个项目的交易。通过注释,Spring将打开并关闭整个列表的一次交易。

最新更新