1. 比如有一个实体定义例如:
/**
*@generated
*@display 数据
*/
@Column(name = "f_data")
private byte[] data;
/**
*@generated
*@display 数据
*/
@Column(name = "f_data2")
private Integer[] data2;
要保存到postgres过程中会出现data读取数据混乱,不是原来的数据,data2会出现无法反序列化问题
解决办法:修改postgres的postgresql.conf配置文件
bytea_output = 'escape' # hex, escape
意思是设置bytea_output的输出类型设置为转义类型输出,而postgres默认是hex类型输出,所以导致转换数据混乱问题
参考文档:
8.4. Binary Data Types
The bytea data type allows storage of binary strings; see Table 8-6.
...
18.10. Client Connection Defaults
18.10.1. Statement Behavior
bytea_output (enum)
Sets the output format for values of type bytea. Valid values are hex (the default) and escape (the traditional PostgreSQL format). See Section 8.4 for more information. The bytea type always accepts both formats on input, regardless of this setting.
以上配置需要重启postgres服务才生效!!!

本文详细介绍了在使用PostgreSQL存储和处理数据时遇到的问题,包括数据转换混乱和反序列化失败,并提供了解决方案。通过修改配置文件中的参数,可以有效避免这些问题,确保数据正确性和一致性。
529

被折叠的 条评论
为什么被折叠?



