Spring boot 如果spring boot hibernate中的saveAll()发生冲突
我目前正在开发Spring Boot Hibernate 我需要在mySql数据库中保存一个对象列表, 我读到了使用saveAll()和foreach save()保存的区别,我可以得出结论,saveAll()要快得多。但是,如果发生异常(例如UK违例),整个过程将回滚,并且不会保存任何对象 更简单一点:我想在一个事务中保存一个对象列表,如果有任何约束冲突,忽略它并保存其余的 这是我的实体:Spring boot 如果spring boot hibernate中的saveAll()发生冲突,spring-boot,hibernate,jpa,Spring Boot,Hibernate,Jpa,我目前正在开发Spring Boot Hibernate 我需要在mySql数据库中保存一个对象列表, 我读到了使用saveAll()和foreach save()保存的区别,我可以得出结论,saveAll()要快得多。但是,如果发生异常(例如UK违例),整个过程将回滚,并且不会保存任何对象 更简单一点:我想在一个事务中保存一个对象列表,如果有任何约束冲突,忽略它并保存其余的 这是我的实体: package com.entity; import org.hibernate.annotation
package com.entity;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Transactional
public class Page {
@Id
@GeneratedValue(generator = "page_sequence-generator")
@GenericGenerator(
name = "page_sequence-generator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "page_sequence"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "1")
}
)
private long id;
@Column(nullable = false, unique = true)
private String url;
private boolean isPageConsumed;
public Page() {
}
public Page(String url, boolean isPageConsumed) {
this.url = url;
this.isPageConsumed = isPageConsumed;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public boolean isPageConsumed() {
return isPageConsumed;
}
public void setPageConsumed(boolean pageConsumed) {
isPageConsumed = pageConsumed;
}
@Override
public String toString() {
return "Page{" +
"id=" + id +
", url='" + url + '\'' +
", isPageConsumed=" + isPageConsumed +
'}';
}
}
这是我的存储库:
@Repository
public interface PageRepository extends CrudRepository<Page, String> {
@Query(value = "SELECT p FROM Page p where p.isPageConsumed = '0'")
public Page findFirstPage();
}
@存储库
公共接口页面存储库扩展了Crudepository{
@查询(value=“从p页中选择p,其中p.isPageConsumed='0')
公共页面findFirstPage();
}
谢谢:)您可以在调用saveAll()
的控制器方法上使用Spring