add support get for null var
This commit is contained in:
parent
ee843129cf
commit
4e3c631aa0
110
session_get.go
110
session_get.go
|
@ -114,8 +114,114 @@ func (session *Session) nocacheGet(beanKind reflect.Kind, table *core.Table, bea
|
||||||
return true, rows.Scan(&bean)
|
return true, rows.Scan(&bean)
|
||||||
case *sql.NullInt64, *sql.NullBool, *sql.NullFloat64, *sql.NullString:
|
case *sql.NullInt64, *sql.NullBool, *sql.NullFloat64, *sql.NullString:
|
||||||
return true, rows.Scan(bean)
|
return true, rows.Scan(bean)
|
||||||
case *string, *int, *int8, *int16, *int32, *int64, *uint, *uint8, *uint16, *uint32, *uint64:
|
case *string:
|
||||||
return true, rows.Scan(&bean)
|
var res sql.NullString
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*string)) = res.String
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *int:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*int)) = int(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *int8:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*int)) = int(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *int16:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*int16)) = int16(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *int32:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*int32)) = int32(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *int64:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*int64)) = int64(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *uint:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*uint)) = uint(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *uint8:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*uint8)) = uint8(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *uint16:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*uint16)) = uint16(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *uint32:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*uint32)) = uint32(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *uint64:
|
||||||
|
var res sql.NullInt64
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*uint64)) = uint64(res.Int64)
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
case *bool:
|
||||||
|
var res sql.NullBool
|
||||||
|
if err := rows.Scan(&res); err != nil {
|
||||||
|
return true, err
|
||||||
|
}
|
||||||
|
if res.Valid {
|
||||||
|
*(bean.(*bool)) = res.Bool
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
switch beanKind {
|
switch beanKind {
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"xorm.io/core"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"xorm.io/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserCU struct {
|
type UserCU struct {
|
||||||
|
|
Loading…
Reference in New Issue