`
jz_2017
  • 浏览: 5855 次
社区版块
存档分类
最新评论

JpaRepository Save 慢的问题

    博客分类:
  • Java
 
阅读更多

 

 检查了代码, 已经写了batch_size。但是还是不管用。

 

Properties.setProperty("hibernate.jdbc.batch_size", "200");

 

 

查询了Stack Overflow, batch_size 不起作用有可能是因为:

 

Note

Hibernate disables insert batching at the JDBC level transparently if you use an identity identifier generator.

相关链接: https://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch04.html#d0e1893

 

解决办法是,不适用GenerationType.AUTO 自动生成表的自增型id

可以使用GenerationType.Sequence

相应的在数据库创建Sequence。

以下给出Java关键代码以及MSSQL 2016创建Sequence的写法

 

//java entity
@Entity
@Table(name = "Student", schema = "dbo")
public class Student {

    @Id
    @SequenceGenerator(name = "StudentSeq", sequenceName = "StudentSeq")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, name = "StudentSeq")
    private Long id;

    ***
}

 

 

CREATE SEQUENCE dbo.StudentSeq
AS BIGINT
START WITH 1
INCREMENT BY 200
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE
GO

 相关链接: https://docs.microsoft.com/en-us/sql/relational-databases/sequence-numbers/sequence-numbers?view=sql-server-2016

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics