model 结构体字段的tag包含DATETIME。会出错,并且会误导报错 #563

Closed
opened 2017-04-10 11:08:48 +00:00 by FJSDS · 0 comments
FJSDS commented 2017-04-10 11:08:48 +00:00 (Migrated from github.com)

首先,有错误你没处理:session_get.go 30行。这里出错没处理,导致返回错误的error,误导错误。

if beanValue.Elem().Kind() == reflect.Struct {
	session.Statement.setRefValue(beanValue.Elem())
}

这里一定要处理错误,不然出错了会误导。会报 table not found 错误

if h, ok := engine.tagHandlers[ctx.tagName]; ok {
	if err := h(&ctx); err != nil {
		return nil, err
	}
}

如果ctx.tagName为DATETIME 就会去调用默认的Handlers
在这里抛出错误:

} else if len(ctx.params) == 1 {
	ctx.col.Length, err = strconv.Atoi(ctx.params[0])
	if err != nil {
		return err
	}
}
首先,有错误你没处理:session_get.go 30行。这里出错没处理,导致返回错误的error,误导错误。 ```Go if beanValue.Elem().Kind() == reflect.Struct { session.Statement.setRefValue(beanValue.Elem()) } ``` 这里一定要处理错误,不然出错了会误导。会报 table not found 错误 ```Go if h, ok := engine.tagHandlers[ctx.tagName]; ok { if err := h(&ctx); err != nil { return nil, err } } ``` 如果ctx.tagName为DATETIME 就会去调用默认的Handlers 在这里抛出错误: ```Go } else if len(ctx.params) == 1 { ctx.col.Length, err = strconv.Atoi(ctx.params[0]) if err != nil { return err } } ````
lunny referenced this issue from a commit 2020-01-19 09:34:09 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xorm/xorm#563
No description provided.