我是春季靴新手,所以我的知識缺乏。
我在 Spring Boot 中使用 MySql 和 JPA 存盤庫。
我將資料放入 ArrayList 并使用“SaveAll”方法保存它。
由于資料沖突問題,我試圖通過“插入忽略”方法進行保存,這可能嗎?
批量插入已設定并正在使用。
uj5u.com熱心網友回復:
您可以使用@Query注釋來定義您自己的自定義 repo 方法來完成此操作
@Query("INSERT IGNORE INTO table (COLUMNS) values (...)")
public List<S> saveAllInsertIgnore(List<> list);
uj5u.com熱心網友回復:
在 Spring Data JPA 中添加自定義插入查詢非常容易。我們所要做的就是用@SQLInsert 注釋物體。并且 jpa 存盤庫 save 和 saveAll 將考慮此插入查詢。
在這里找到一些檔案
代碼示例:
import org.hibernate.annotations.SQLInsert;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
@Entity
@Table(name = "users")
@SQLInsert(sql = "INSERT IGNORE INTO users(first_name, last_name, email) "
"VALUES (?, ?, ?)" )
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "first_name", nullable = false)
@NotBlank
@Size(max = 512)
private String firstName;
@Column(name = "last_name", nullable = false)
@NotBlank
@Size(max = 512)
private String lastName;
@Column(nullable = false)
@NotBlank
@Email
@Size(max = 512)
private String email;
但在我看來,最好使用本機查詢進行插入
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/403736.html
標籤:
上一篇:如何使用JPAEntityManager將未跟蹤的SQL視圖的結果映射到DTO/POJO?
下一篇:方法assertThat(List<Flight>)對于SpringDataOverviewApplicationTestsJava(67108964)型別未定義
