【发布时间】:2017-09-25 18:07:14
【问题描述】:
我找到了,那个方法
Iterable<S> CrudRepository#save(Iterable<S> entities)
工作很慢。
如果相反,我自己使用Iterable 并创建这样的长查询
INSERT INTO mytable (field1, field2) VALUES
(value1, value2),
(value3, value4),
...
(valueN, valueM);
并针对实体管理器执行它,它的工作速度要快得多(10 倍甚至更多)。
我可以让 Spring-Data 本身以同样快的速度工作吗?
例如,是否有任何选项可以强制 Hibernate 或任何底层库使用此类多值查询?
我正在使用 SQLite 和这里的课程:https://stackoverflow.com/a/24233241/258483
我能不能以某种方式改进这门课?
更新
我正在使用身份生成与
@Entity
@Table(name = "variable_values")
public class VariableValue {
@Id
@Column(name="id")
@GeneratedValue(generator="sqlite")
@TableGenerator(name="sqlite", table="sqlite_sequence",
pkColumnName="name", valueColumnName="seq",
pkColumnValue="variable_values")
@Getter
@Setter
private long id;
这是否意味着我无法从批处理中受益?
【问题讨论】:
标签: java hibernate sqlite jpa spring-data