如何爲以下場景創建Hibernate映射。 我有三個表格,Users
,Systems
和System Assign
。 有三種類型的用戶 - 普通用戶,超級用戶和管理員。如何爲以下場景創建Hibernate映射
Users
表有五列 - 用戶ID,用戶名,密碼,電子郵件ID和用戶類型。 userType將決定用戶是超級用戶還是管理員還是普通用戶。
Systems
表有一些列,但最重要的是systemsID
它將用於映射。
我創建了一個表System Assign
,爲具有兩列user-ID和system_id的用戶分配一個系統(或者如果需要可以更正)。還創建了這兩個作爲相應表的外鍵。
映射的條件是:
- 用戶可以對自己的名字的一個或多個系統ID。
- 系統ID可以分配給一個或多個用戶。
- 當從UI中刪除system_assign記錄時,它應該只打破用戶和系統之間的鏈接,但用戶和系統應該在數據庫中。
而且我必須做出一些像這樣的數據庫更改:
- 如果超級用戶創建一個用戶,該用戶將可以在他
- 如果一個超級用戶創建了一個系統,系統會在他之下。
- 如果用戶被刪除,那麼系統現在應該超級用戶。
我需要知道如何爲這個塞納里奧
@Entity
@Table(name = "SYSTEM_ASSIGN")
public class SAssign implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1945028654484806943L;
@Id
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "USERSSO")
private Users user;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "SYSTEMID")
private Systems system;
public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
public Systems getSystem() {
return system;
}
public void setSystem(Systems system) {
this.system = system;
}
}
我可以在休眠側使用。但是在這種情況下如何在數據庫端進行管理。我可以做任何需要更改的代碼,只是想運行這個應用程序 – shrish
我已經嘗試創建一個system_assign的類給予oneToOne映射,但在保存對象爲ORA-01722時出錯:無效的數字。我也會分享我的課程 – shrish
我已經粘貼了課程 – shrish