用Json導測試資料所出現的問題

2021-08-22 12:44:03 字數 1043 閱讀 8229

用json導測試資料有一些好處(the pesistence is hibernate):

1. 可以讓測試人員,或開發人員造資料是遠離資料庫(物件導向造資料)。

2. 資料庫更換或移植,資料可以完好的儲存在json檔案裡(因為是json檔案,也可以將資料庫的data反導出到檔案)。資料也容易備份轉移。

...那麼也會存在一些問題。

現在假設乙個資料庫的表跟domain object已經對應好。 (資料庫是postgre, hibernate3.2,and jpa.)

假設有這麼乙個資料,category(super class, or not, but has parent, and children), 下面有groupcategory, magazinecategory繼承它。 而annotion其中一語句是

"@inheritance(strategy = inheritancetype.single_table)"

那麼,資料庫中只有一張表tcategory,而對應有兩個class, groupcategory, magazinecategory(表中的dtype欄位來區分),問題來了:

如何新增parent?

一次新增parent資料和它的children時會丟擲異常。原因推理: 假設這裡導乙個json乙個transaction, 那麼在假設導groupcategory時,會將parent預備匯入,但還沒真正的persist, 那麼再匯入其children時,在資料庫裡沒找到,那麼會自己建乙個parent, 也想往資料庫儲存,衝突! 所以會異常丟擲?

如何解決:

在匯入資料時先導入資料,然後匯入關係(只是針對這種特殊情況,其他的domain object不需要要)。

eg:先導入所有groupcategory(include parents and children, but no relatino)。如groupcategory.json

然後在匯入relation,如:groupcategoryrelation.json,這裡面建立關係:)

昨天弄到凌晨三點,在高手的指點下解決問題,多謝andlu!

但依然麻煩:d

構造測試資料 對比測試資料

正確 include using namespace std typedef long long ll const int max n 1e6 10 intmain return0 author max n date 2019 10 04 15.03.21 description 正確 錯誤 inc...

SLAM 用測試資料集來測試VINS

目前編寫雙目vins 發現雙目vins初始化後的尺度存在問題 理想化雙目尺度應該為1 所以想著利用無誤差的測試集來測試一下自己寫的 我先在單目vins下做了測試,下面是我利用github上賀所長的單目測試集在單目vins上測試的過程 1.單目vins測試資料集 1 gener alldata.cpp...

常用測試資料

程式或應用編寫好了之後,通常要輸入一些測試資料,我們懶人一般的做法就是,輸入 asdf,愛上對方,阿道夫。之類的隨手打的字元。這裡,我收集了一點點資料供測試時候使用,應該可以作為常用的測試資料。1.常用的姓名 平時,很多系統比如員工名字需要,但是又怕洩露隱私,所以這裡從網上收集了中國50個最常用的姓...