diff --git a/integrations/session_update_test.go b/integrations/session_update_test.go index f9b49078..22808d60 100644 --- a/integrations/session_update_test.go +++ b/integrations/session_update_test.go @@ -1396,15 +1396,22 @@ func TestNilFromDB(t *testing.T) { assert.NoError(t, PrepareEngine()) assertSync(t, new(TestTable1)) - cnt, err := testEngine.Insert(&TestTable1{ + var tt0 = TestTable1{ Field1: &TestFieldType1{ cb: []byte("string"), }, UpdateTime: time.Now(), - }) + } + cnt, err := testEngine.Insert(&tt0) assert.NoError(t, err) assert.EqualValues(t, 1, cnt) + var tt1 TestTable1 + has, err := testEngine.ID(tt0.Id).Get(&tt1) + assert.NoError(t, err) + assert.True(t, has) + assert.EqualValues(t, "string", string(tt1.Field1.cb)) + cnt, err = testEngine.Update(TestTable1{ UpdateTime: time.Now().Add(time.Second), }, TestTable1{ @@ -1430,7 +1437,7 @@ func TestNilFromDB(t *testing.T) { assert.EqualValues(t, 1, cnt) var tt2 TestTable1 - has, err := testEngine.ID(tt.Id).Get(&tt2) + has, err = testEngine.ID(tt.Id).Get(&tt2) assert.NoError(t, err) assert.True(t, has) assert.Nil(t, tt2.Field1) @@ -1446,9 +1453,9 @@ func TestNilFromDB(t *testing.T) { assert.EqualValues(t, 1, cnt) var tt4 TestTable1 - has, err = testEngine.ID(tt.Id).Get(&tt4) + has, err = testEngine.ID(tt3.Id).Get(&tt4) assert.NoError(t, err) assert.True(t, has) assert.NotNil(t, tt4.Field1) - assert.Nil(t, tt4.Field1.cb) + assert.NotNil(t, tt4.Field1.cb) } diff --git a/session.go b/session.go index 64b1758a..486911a5 100644 --- a/session.go +++ b/session.go @@ -768,7 +768,7 @@ func (session *Session) slice2Bean(scanResults []interface{}, fields []string, b fieldValue, err := session.getField(dataStruct, key, table, idx) if err != nil { - if !strings.Contains(err.Error(), "is not valid") { + if _, ok := err.(ErrFieldIsNotValid); !ok { session.engine.logger.Warnf("%v", err) } continue