我正在將 Java 與 Spring Boot 和 Hibernate 一起使用。我主要對幾乎所有物體使用自動增量主鍵。我有一個物體,它的主鍵是自動增量。這是該物體唯一的唯一值。
對于我想要實作的內容,我需要一種方法來驗證物體是否存在于 db 表中,我還試圖實作該方法來更新或洗掉所述物體。在這種情況下,作業經驗類的物體。
@Entity
@Table(name = "user")
public class User {
//<editor-fold defaultstate="collapsed" desc="Variable Def">
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "user_name", unique = true)
@Getter
@Setter
private String user_name;
@Column(name = "password")
@Getter
@Setter
private String password;
@Column(name = "reset_password_token")
@Getter
@Setter
private String reset_password_token;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "person_id", referencedColumnName = "id")
@Getter
@Setter
private Person person;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "role_id", referencedColumnName = "id")
@Getter
@Setter
private Role role;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "business_profile_id", referencedColumnName = "id")
@JsonBackReference
@Getter
@Setter
private BusinessProfile business_profile;
//</editor-fold>
@OneToOne(mappedBy = "user")
private UserRecord record;
@OneToOne(mappedBy = "publisher")
private JobHiredRecord job_hired_record_publisher;
@OneToOne(mappedBy = "customer")
private JobHiredRecord job_hired_record_customer;
}
這是我的用戶類,我對用戶沒有問題,因為用戶名也是唯一值,所以我按用戶名搜索。
我可以向用戶添加 1 個業務組態檔,并且在該業務組態檔類中,我可以添加作業經驗串列。這是我的作業經驗課:
@Entity
@Table(name = "work_experience")
public class WorkExperience {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "title")
@Getter
@Setter
private String title;
@Column(name = "company_name")
@Getter
@Setter
private String company_name;
@Column(name = "start_date", columnDefinition = "DATE")
@Getter
@Setter
private Date start_date;
@Column(name = "end_date", columnDefinition = "DATE")
@Getter
@Setter
private Date end_date;
@Column(name = "description")
@Getter
@Setter
private String description;
@ManyToOne
@JsonBackReference
@JoinColumn(name = "business_profile_id", referencedColumnName = "id")
@Getter
@Setter
private BusinessProfile business_profile;
}
假設我將 2 個作業經驗物體添加到資料庫中,具有相同的標題、描述和日期到相同的業務組態檔,基本上完全相同,除了由資料庫自動生成的 id。如果我想更新其中一個物體,我需要通過客戶端提供他們的 ID(這是我遇到的問題,不知道如何實作),或者從服務器端做一些事情(我是使用休眠和彈簧啟動)。我該怎么辦?
uj5u.com熱心網友回復:
如果您使用的是像 save() 這樣的 JpaRepository 函式,您可以假設該記錄已添加到資料庫中,只要沒有引發例外,因此您無需檢查它是否存在。這將是浪費時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/473497.html
上一篇:錯誤org.springframework.beans.factory.BeanCreationException:創建類路徑資源中定義的名稱為“entityManagerFactory”的bean時
