From 3b77cdd8083a9d832349f9dd8394f59e0a7c58ae Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 11 Aug 2021 16:20:19 +0800 Subject: [PATCH] Fix --- session.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/session.go b/session.go index 9df2764b..14989781 100644 --- a/session.go +++ b/session.go @@ -649,7 +649,20 @@ func (session *Session) convertBeanField(col *schemas.Column, fieldValue *reflec session.cascadeMode == cascadeCompitable) || (col.AssociateType == schemas.AssociateBelongsTo && session.cascadeMode == cascadeEager)) { - var pk = make(schemas.PK, len(col.AssociateTable.PrimaryKeys)) + var associateTable *schemas.Table + if col.AssociateType == schemas.AssociateNone && col.AssociateTable == nil { + var err error + associateTable, err = session.engine.tagParser.ParseWithCache(*fieldValue) + if err != nil { + return err + } + } else { + associateTable = col.AssociateTable + } + + fmt.Println("=====", associateTable) + + var pk = make(schemas.PK, len(associateTable.PrimaryKeys)) var err error pk[0], err = asKind(vv, reflect.TypeOf(scanResult)) if err != nil { @@ -659,14 +672,16 @@ func (session *Session) convertBeanField(col *schemas.Column, fieldValue *reflec session.afterProcessors = append(session.afterProcessors, executedProcessor{ fun: func(session *Session, bean interface{}) error { fieldValue := bean.(*reflect.Value) + fmt.Println("3333333") return session.getStructByPK(pk, fieldValue) }, session: session, bean: fieldValue, }) session.cascadeLevel-- + fmt.Println("222222") return nil - } else if col.AssociateType == schemas.AssociateBelongsTo { + } else if col.AssociateType == schemas.AssociateBelongsTo && session.cascadeMode == cascadeLazy { pkCols := col.AssociateTable.PKColumns() colV, err := pkCols[0].ValueOfV(fieldValue) if err != nil {