必須提醒你:當應用程式繼承現有的遺留資料庫schema時,通常應該盡可能地對現有的schema少做一些改變。你
對schema所做的每一處改變都可能破壞訪問資料庫的其他現有應用程式。現有資料的遷移可能很昂貴,這也是你要考慮
的問題。一般來說,構建乙個新的應用程式不可能不對現有的資料模型做任何改變--新應用程式通常意味著
額外的業務需求,自然需要資料庫schema的演變。
處理主鍵:
不幸的是,遺留的資料庫很多使用了自然主鍵、復合鍵,這樣在業務需求改變時,很難重構資料庫。
1、對映自然鍵
如你遇到的user表,可能username是乙個自燃鍵。那麼你就需要告訴hibernate,標示符是在物件儲存之前由應用
分配的乙個自燃鍵:
view plain
copy to clipboard
print?
<
class
name=
"user"
table=
"user"
>
"username"
column=
"user_name"
>
class
="assigned"
>
"password"
>
class
>
jpa實現:view plain
copy to clipboard
print?
@entity
public
class
user
implements
serializable
public
userid(string usercode, string username)
public
string getusercode()
public
void
setusercode(string usercode)
public
string getusername()
public
void
setusername(string username)
@override
public
inthashcode()
@override
public
boolean
equals(object obj) else
if(!usercode.equals(other.usercode))
return
false;
if(username ==
null
) else
if(!username.equals(other.username))
return
false;
return
true;
}@override
public
string tostring() }
user:
view plain
copy to clipboard
print?
public
class
user
implements
serializable )
private
userid userid;
private
string password;
@onetomany
"user")
private
setitems =
newhashset();
view plain
copy to clipboard
print?
@entity
public
class
item
implements
serializable )
private
user user;
hibernate建立復合索引
1,hibernate執行復合索引兩種方式 在一對多的關係中,在多的一方產生做為連線的外來鍵 只是當做外來鍵用,資料表裡邊是沒有外來鍵的 當從一的一端向多的一端查詢時,可能在多的一端造成全表查詢問題,影響效能,所以在多的一端新增索引如下 xml user id seq 建立復合索引則如下,一般不會與...
Hyperledger Fabric 復合鍵使用
hyperledger fabric 的復合鍵是基於多個列組合成乙個復合鍵,並基於復合鍵存資料,基於復合鍵或部分列快速取資料。復合鍵將會使用復合鍵的型別名及多個列資料 u0000 生成實際使用的key。示例 createcompositekey id version min sub string 型...
POWER BI實現復合鍵關聯
power bi 實現復合鍵關聯 在power bi中可以實現表之間的關聯操作,例如 表1 表2 表1和表2,可以用學生做關聯 關聯後的效果如下 再增加乙個表 表3 需要把教師也做關聯,這時由於,班級和課程不在乙個表中,power bi中不能直接建立關聯 這時需要先將表一和表二建立聯絡後,再用復合鍵...