GaussDb更新时Jsonb字段会报错 返回
专食葱的人 发布于2周前


在GaussDb会报这个错 是还有其他额外的配置吗
热忱回答(12)
-
fate sta VIP0
2周前用json试试不要用jsonb
0 回复 -
专食葱的人 VIP0
2周前@fate sta:是可以 但是jsonb的一些操作就用不了了
0 回复 -
fate sta VIP0
2周前moersetting里面有个jsonp配置你看一下。
0 回复 -
fate sta VIP0
2周前[SqlSugar.SugarColumn( SqlParameterDbType = NpgsqlTypes.NpgsqlDbType.Jsonb)]
这样试试
0 回复 -
专食葱的人 VIP0
2周前@fate sta:moresetting配了EnableJsonb和使用 [SqlSugar.SugarColumn( SqlParameterDbType = NpgsqlTypes.NpgsqlDbType.Jsonb)]都不行 还是报同样的错
0 回复 -
专食葱的人 VIP0
2周前@fate sta:
UPDATE "User" SET "UsedLoginUserName"='["999"]' WHERE "_id"=N'07a2feb5-0897-45b7-86fc-d6a890539c49'
但是上面ToSqlString()出来的倒是能直接在数据库执行成功 只是用Sqlsugar就报错
0 回复 -
专食葱的人 VIP0
2周前@fate sta:在原生PostgreSQL jsonb没问题,在OpenGauss就不行
0 回复 -
fate sta VIP0
2周前[SqlSugar.SugarColumn( SqlParameterDbType = NpgsqlTypes.NpgsqlDbType.Jsonb)]
加上这个,并且打印的SQL不准。
0 回复 -
专食葱的人 VIP0
2周前@fate sta:加了 一样报错
0 回复 -
fate sta VIP0
2周前var sql=UtilMethods.GetNativeSql(exp.sql,exp.parameters)
用这个打印出SQL
0 回复 -
专食葱的人 VIP0
2周前@fate sta:

[Sql]:UPDATE "User" SET "UsedLoginUserName"=@UsedLoginUserName WHERE "_id"=@_id [Pars]: [Name]:@_id [Value]:07a2feb5-0897-45b7-86fc-d6a890539c49 [Type]:String [Name]:@UsedLoginUserName [Value]:["888"] [Type]:AnsiString
public class User
{
[SugarColumn(IsPrimaryKey = true, ColumnName = "_id")]
public string Id { get; set; }
[SugarColumn(IsJson = true,SqlParameterDbType = NpgsqlTypes.NpgsqlDbType.Jsonb)]
public string[] UsedLoginUserName { get; set; }
}0 回复 -
fate sta VIP0
2周前it.Aop.OnExecutingChangeSql = (sql, para) => { foreach (var item in para) { if (item.IsJson) { item.CustomDbType = NpgsqlTypes.NpgsqlDbType.Jsonb; } } return new System.Collections.Generic.KeyValuePair<string, SugarParameter[]>(sql, para); };AOP全局处理一个这个。
0 回复