前段時間,紅帽公司的高階架構師來公司培訓了hibernate的高階應用,因為本人是做前台轉到做後台的,所有好多東西是雲裡霧裡的。當時老師講到領域模型設計以及hibernate的繼承的使用,剛開始並沒理解物件繼承的作用,感覺繼承也減少不了多少工作量。而且hibernate的延遲載入還不支援 向下轉型 和instanceof 以為這東西在我實際開發中使用價值不大。但最近的乙個專案,我試著使用領域模型進行設計並且在實施中發現了許多好處。
任務計畫需求:任務計畫分個人任務:也就是私人任務;定期性任務:就是固定時間要做的一些任務,比如上傳報表之類的任務.;工作任務:就是上級指派給下級需要完成的任務。
這三種任務在不同的介面進行增加,但需要在乙個介面進行展示,也就是現在業界比較流行的日檢視,周檢視,月檢視之類的。這種情況採用繼承就比較方便
任務計畫的物件xml為
修改人工號
修改時間
歸檔標誌
授權角色名稱
授權角色id串
授權機構id串
授權機構名稱
授權人id串
授權人姓名
開始時間
結束時間
任務型別
提醒時間
任務內容
主題任務狀態
內部簡訊
發布人姓名
發布人工號
採用union-subclass模式,該模式為每個子類生成乙個對應的資料庫表。
因為在統一介面展示,如果採用以前的設計方式 ,在進行crud時如果從前台傳入乙個id ,後台可能不知道是屬於哪個類的物件,只能由程式設計師寫原生sql或者遍歷去找該物件後再操作,而現在使用繼承方式的話,這些工作hibernate就會幫我們自己完成。比如get物件通過id。
select
task0_.task_id as task1_21_0_,
task0_.update_by as update2_21_0_,
task0_.update_time as update3_21_0_,
task0_.archive_flag as archive4_21_0_,
task0_.accredit_role_name as accredit5_21_0_,
task0_.accredit_role_id as accredit6_21_0_,
task0_.accredit_org_id as accredit7_21_0_,
task0_.accredit_org_name as accredit8_21_0_,
task0_.accredit_user_id as accredit9_21_0_,
task0_.accredit_user_name as accredit10_21_0_,
task0_.start_time as start11_21_0_,
task0_.end_time as end12_21_0_,
task0_.task_type as task13_21_0_,
task0_.awoke_time as awoke14_21_0_,
task0_.task_content as task15_21_0_,
task0_.task_title as task16_21_0_,
task0_.task_state as task17_21_0_,
task0_.inner_note as inner18_21_0_,
task0_.issuance_name as issuance19_21_0_,
task0_.issuance_id as issuance20_21_0_,
task0_.clazz_ as clazz_0_
from
( select
accredit_role_name,
inner_note,
task_content,
accredit_org_name,
awoke_time,
task_id,
task_type,
accredit_role_id,
accredit_user_name,
update_by,
task_state,
update_time,
end_time,
accredit_org_id,
issuance_id,
task_title,
start_time,
issuance_name,
archive_flag,
accredit_user_id,
1 as clazz_
from
oa_individual_task
union
select
accredit_role_name,
inner_note,
task_content,
accredit_org_name,
awoke_time,
task_id,
task_type,
accredit_role_id,
accredit_user_name,
update_by,
task_state,
update_time,
end_time,
accredit_org_id,
issuance_id,
task_title,
start_time,
issuance_name,
archive_flag,
accredit_user_id,
2 as clazz_
from
oa_period_task
union
select
accredit_role_name,
inner_note,
task_content,
accredit_org_name,
awoke_time,
task_id,
task_type,
accredit_role_id,
accredit_user_name,
update_by,
task_state,
update_time,
end_time,
accredit_org_id,
issuance_id,
task_title,
start_time,
issuance_name,
archive_flag,
accredit_user_id,
3 as clazz_
from
oa_work_task
) task0_
where
task0_.task_id=?
在團隊開發中git的使用
通過團隊開發讓知道git在團隊中的使用。應該注意的事項 git的使用分為兩種,一種是客戶端,一種是終端,我採用的是終端。蘋果開發一搬採用的是蘋果電腦,系統終端自帶git指令 在上傳 之前必須進行下啦 命令如下 git add git commit frist git pull origin mast...
在遊戲開發中的使用icade手柄
當ab兩個按鍵同時按下時,會表示為手柄上的g鍵被按下,同時ab兩個按鍵被鬆開。當cd兩個按鍵同時按下時,會表示為手柄上的h鍵被按下,同時cd兩個按鍵被鬆開。在網上找到了乙個相關的 手柄使用鍵盤的按鍵來代替手柄按鍵,實際上icade手柄是作為乙個鍵盤連線到遊戲中的。下邊是icade規定的按鍵值 up ...
在團隊專案開發中SVN的使用
1.svn目錄解析,以下為版本庫 簡單介紹 trunk為主分支,是日常專案開發的地方 branches是分支,一些階段性的release版本,這些版本是可以開發和維護的,放在 branches目錄下。又比如不同使用者客製化的版本,也可以放在分支中進行開發。tags一般為唯讀的,這裡只是儲存階段性發布...