2015-01-08 62 views
1

![我輸入圖片描述] [1]我有班級,因爲它定義如下,我讀取數據庫填充記錄 TbMenu列表TbMenu將被生成。從關係數據庫中讀取嵌套列表並使用Scala創建另一個列表

TbMenu是有它的兒童名單指向父節點編號

案例類TbMenu(名稱:字符串,網址:字符串,兒童:列表[TbMenu]) - Squeryl數據庫案例類

我想寫方法來讀取上述結構遞歸和創建的對象的另一個列表按照以下結構

案例類MenuBO(名稱:字符串,網址:字符串,兒童:列表[TbMenuBO])

這將是非常巨大的幫助給我一些上面的示例實現。清單[MenuBO] = {val list:List [MenuBO] =無def helper(orgData:List [TbMenu],結果:列表[MenuBO]):列表[MenuBO]):列表[MenuBO] = {orgData match {case x :: tail => {val Menu = new MenuBO(x.id,x.Description,x.ParentId,x.Url,x.haschildren,null)x.children.toList match {case x :: tail => {val Menu2 = new MenuBO(x.id,x.Description,x.ParentId,x.Url,x.haschildren,null)helper(tail,result ::: List(Menu2)) } case Nil => return result} Menu.Children = result helper(tail,result ::: List(Menu))} case Nil => result}} helper(orgData,list)}

預先感謝您

+0

什麼是TbMenuBO?它是否打算成爲MenuBO? –

+0

TbMenuBO是一個業務對象,用於在從服務層的TbMenu中填充它後使用Play框架在UI層中繪製菜單 –

+0

TbMenuBO和MenuBO有什麼區別? –

回答

0

假設這TbMenuBO相同MenuBO,該解決方案可以是以下幾點:

def Read(menu: TbMenu): MenuBO = { 
    menu match { 
    case TbMenu(name, url, children) => MenuBO(name, url, children.map(Read)) 
    } 
} 

我建議你堅持到正式編碼約定(方法名和字段名應該與小寫字母開始)。

+0

我試過這個,但不成功它適用於扁平列表不適用於嵌套列表 –

+0

@BimalKaluarachchi你可以請你用你試過的更新你的問題嗎? –

相關問題