與介紹Hibernate框架映射關係時一樣,這裏將之前的表結構改成如下的兩張。
看一下新表attack_document_parents的表結構,表12.1:
表12.1 attack_document_parents的表結構
字段名 |
說明 |
KEY |
Index |
類型 |
長度 |
parents_attack_event_code |
主攻擊代號 |
K |
I |
varchar |
30 |
pattack_mean |
主攻擊說明 |
|
|
varchar |
1000 |
修改之前的fw_attacksolution表結構如表12.2:
表12.2 fw_attacksolution的表結構
字段名 |
說明 |
KEY |
Index |
類型 |
長度 |
attack_event_code |
攻擊代號 |
K |
I |
varchar |
30 |
attack_mean |
用戶名 |
|
|
varchar |
1000 |
attack_action |
攻擊解決方案 |
|
|
varchar |
1000 |
parents_attack_event_code |
主攻擊代號 |
F |
|
varchar |
30 |
這兩張表的對應關係,從attack_document_parents表來看就是“一對多”的關係,而從fw_attacksolution表來看就是“多對一”的關係。
fw_attacksolution表的parents_attack_event_code字段作爲外鍵與attack_document_parents的parents_attack_event_code字段相關聯。
1. 映射attack_document_parents的VO
在這裏假設一個映射attack_document_parents表的VO名爲PattackDocument.java。VO的變量屬性就不多描述了,這裏僅給出作爲關係映射的變量屬性那一段代碼:
/**
* 由於attack_document_parents與fw_attacksolution是一對多的關係
* 所以在對象之間的關係中就使用List來表明這層關係
*/
private ArrayList attackSolution;
public ArrayList getAttackSolution() {
return attackSolution;
}
public void setAttackSolution(ArrayList attackSolution) {
this.attackSolution = attackSolution;
}
這段代碼表示映射attack_document_parents表與fw_attacksolution表之間爲一對多關係的,是一個名爲attackSolution的變量屬性,聲明爲ArrayList類型。attackSolution變量屬性表明了在PattackDocument VO中,對於AttackSolution VO,一個PattackDocument VO可以包含多個AttackSolutionVO。
2. 映射fw_attacksolution的VO
映射fw_attacksolution表的VO名爲AttackSolution.java。VO的變量屬性不作過多描述。這裏給出作爲關係映射的變量屬性的一段代碼:
/**
* 由於fw_attacksolution與attack_document_parents是多對一的關係
* 所以在對象之間的關係中
* 每個實例AttackSolution都會對應一個PattackDocument
*/
private PattackDocument pattackDocument;
public PattackDocument getPattackDocument() {
return pattackDocument;
}
public void setPattackDocument(PattackDocument pattackDocument) {
this.pattackDocument = pattackDocument;
}
這段代碼表示映射fw_attacksolution表與attack_document_parents表之間爲多對一關係的,是一個名爲pattackDocument的變量屬性,聲明其爲PattackDocument類型。pattackDocument變量屬性表明了在AttackSolution VO中,對於PattackDocument VO,一個AttackSolution VO只能指定一個PattackDocument VO。