問題描述:
由于QueryModel轉(zhuǎn)化成XML內(nèi)容存到數(shù)據(jù)時(shí),表及字段信息通過DbTableInfo獲得,其tables、fields均是用HashMap方式存儲(chǔ),這樣造成存到數(shù)據(jù)庫時(shí)順序被打亂了,當(dāng)被取出來進(jìn)行操作時(shí),與原本的順序就不一致。
修改內(nèi)容:
Translator的getXmlString方法在獲取表及字段信息時(shí),通過QueryModel的DbTableModel對象來獲取順序的表名、字段名,在根據(jù)表名對應(yīng)的DbTableInfo信息獲取業(yè)務(wù)化的內(nèi)容,再轉(zhuǎn)化成XML內(nèi)容。
2007-05-16:
從數(shù)據(jù)庫讀取應(yīng)用表信息對象時(shí),表名及字段名仍然沒有按照順序,通過 AppDbTable[] appDbTableArr = t1.getInfo().getDbTableInfoToAppTableArr();獲取,后查由于Translator類的getInfo()方法即DbTableInfo屬性中,DbTableInfo類的tables、fields為HashMap,是散列存儲(chǔ),改成雙向鏈表的LinkedHashMap方式存儲(chǔ),保證表名、字段名的順序。
private Map tables = new LinkedHashMap();
Map fields = new LinkedHashMap();