go-xorm報錯(expect \d+ desination arguments in Scan,but 1)

錯誤解釋

這個錯誤出如今數據庫查詢返回數據到Object的解析上。簡而言之就是,go端寫的struck字段數目和數據庫返回的結果字段數目不匹配。數據庫

我犯的錯

相似狀況,以上文的代碼作類比。就是如方法 GetMailBoxAddrBuildingLink()ui

貼代碼.net

func GetMailBoxAddrBuildingLink(engine *xorm.Engine, addr string, num int64,buildingAddr string) (addr *MailAddrBuildingLink ,had bool,err error){
    addr = &MailBoxAddress{}    //引用實例初始化
    has,err = engine.Table("mailboxes").Alias("box").Select("box.*, mailbuilding.addr,buildings.*,links.*").
        Join("INNER",[]string{"buildings","mailbuilding"},"box.building_id = mailbuilding.id").
        Join("INNER","links","box.id = links.mailbox_id").
        Join("INNER","buildings","links.building_id = buildings.id").
        Where("mailbuilding.addr = ?",addr).
        And("box.num = ?",num).
        And("buildings.addr = ?",buildingAddr ).Get(addr)
    if err !=nil{
        err = fmt.Errorf("GetMailBoxAddrBuildingLink:%v",err)
    }
    return
}

在實際過程當中,對須要進行解析的引用沒有初始化,簡稱就是少了一行代碼code

addr = &MailBoxAddress{}orm

相關文章
相關標籤/搜索