發表文章

目前顯示的是 10月, 2019的文章

讓Primary Key交給JPA處理

讓Primary Key交給JPA處理 目的 透過本篇文章了解自動產生Primary Key的方法,大綱如下: GeneratedValue GenericGenerator (UUID) SequenceGenerator (透過Database的sequence) GeneratedValue快速產生Primary Key GenerateValue最快速且最常用的方法,通常是直接使用GenerateValue annotation如下就結束 @Getter @Setter @Entity @Table(name = "user") public class User { @Id @GeneratedValue private long id; private String name; } 更進一步了解,GenerateValue包含了strategy屬性,要讓他不做而外行為,自動生產的屬性有 GenerationType.IDENTITY GenerationType.AUTO 此為@GeneratedValue預設的策略參數,如沒特別設定則使用的參數就為此 注意: 不是每個資料庫都支援此功能 IDENTITY 和 AUTO 差異 GenerationType.AUTO是整個使用到此標籤的Primary key都共用一個記數器。 代表如果今天有兩個物件都自動產生Primary Key的話,當A物件產出後pk計數器則會跳到1,若是在產製B物件則此B物件的pk則會變成2,而不是從1開始。 GenerationType.IDENTITY則是使用到個別的計數器。 和上方AUTO成反例,A和B物件都會個別產出自己的計數器。 程式碼 @Data @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; } @Data @Entity @Table(name = "use

Git 的基本技巧

圖片
目的 每次搜尋Git指令並且看過文章後都可以快速記得,但莫名其妙的過一段時間又會回去依賴GUI介面,然而GUI介面用久了常常最根本的指令和標配的-option都會忘光光,所以透過此文紀錄常用的基本Git的指令,讓未來自己想回憶時可以快速進入狀況。 流程 通常Git的使用情境如下 文字描述 情境 : 假設今天專案要開發新的功能並且由我負責,目前整個專案只有兩個branch master develop 而討論過後決定新功能的分支要叫做new-feature,所以我的工作流程就會如下面的步驟 ( checkout ) 將目前遠端develop的程式碼拉下來 ( branch ) 建立要完成功能的new-feature分支 撰寫完程式碼 ( add ) 將更改的程式加入Git進行追蹤 ( commit ) 建立Git節點,並且加入到目前的工作區中 ( pull ) 再次將遠端開發分支的程式碼拉下來 如果有衝突則解決衝突,並且回到第四個步驟;如果沒衝突則往下 ( push ) 將節點推到遠端儲存庫中 ( merge ) 將功能分支與開發分支合併 流程圖描述 指令介紹 Checkout 將遠端的分支拉到本地端 git checkout -b <branch-name> origin/<branch-name> Pull 通常自動設定都會將remote-name設定為origin pull git pull [remote-name] <branch-name> fetch git fetch [remote-name] <branch-name> pull與fetch的差別在於,pull會直接將遠端的資料merge進你目前的工作區 簡單來說 pull = fetch + merge Branch 展示目前branch的情況 git branch -vv 直接讓遠端的branch和本地端branch作連動,連動後以後可以直接輸入git push推出程式碼 git branch -u origin/mybranch -u為 (參考 git官方網站 ) -u <upstream> –set-upstream-to=<upstream&