我們有一個用于不同目的的 ENUMS 串列。
示例列舉:
public enum EJobTrackingType implements Lookup<EJobTrackingType> {
//I want to save all these enums into database
NOTIFY_SERVICE(230000001, 1,"Notify service", "desc"),
COMPLETED_SERVICE(230000002, 2,"Completed service", "desc"),
..... //more than 100 enums like this
}
我們使用 .sql 檔案來保存這個列舉,
INSERT INTO FTTHAPP.TBL_LOOKUP (id, parent_lookup_id, group_id, group_name, code, name, desc) values (230000001, NULL, 23, 'JOB_TRACKING_TYPE', 1, 'NOTIFY_SERVICE', "desc")
問題:
我們需要寫入兩次值(一次在列舉中,另一次在.sql 陳述句中)
這似乎不是有效的方法,還有其他方法可以保存 ENUMS 以避免這種重復嗎?
uj5u.com熱心網友回復:
從上面提到的細節中,我了解到我們必須將 java 檔案中存在的所有列舉插入到資料庫中。
我認為可能的答案是遍歷所有列舉并將它們中的每一個插入資料庫。
EnumSet.allOf(EJobTrackingType.class)
.forEach(eJob -> ejobRepository.saveAnFlush(eJob));
雖然這不是實際的實作,但它給出了我們如何進行的想法。
我們可以將類映射到必須存盤的值,標記為@Entity。在一些配接器的幫助下,用 Enums 中的值填充該類。并且物體類可以保存到資料庫中。
我們可以有一些屬性來指定必須進行插入或更新。這樣我們就可以在列舉的 forEach 期間進行一些過濾。
此作業可以在應用程式啟動時運行,其中將處理此作業的新類可以使用@Configuration 進行注釋。如果要更新/插入的行太多,則可能會在單獨的執行緒中運行此作業。
我認為這有幫助..這些是我想到的幾件事..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491597.html
