Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取psql中的文本列值_Java_Hibernate_Postgresql_Psql - Fatal编程技术网

Java 获取psql中的文本列值

Java 获取psql中的文本列值,java,hibernate,postgresql,psql,Java,Hibernate,Postgresql,Psql,我已经用Hibernate和@Lob String字段创建了简单实体。Java中的一切都很好,但是我无法使用psql或pgAdmin直接检查DB中的值 以下是DB中的定义: => \d+ user_feedback Table "public.user_feedback" Column | Type | Modifiers | Storage | Stats target | Description --------+--------+--

我已经用Hibernate和
@Lob String
字段创建了简单实体。Java中的一切都很好,但是我无法使用
psql
pgAdmin
直接检查DB中的值

以下是DB中的定义:

=> \d+ user_feedback
                    Table "public.user_feedback"
 Column |  Type  | Modifiers | Storage  | Stats target | Description 
--------+--------+-----------+----------+--------------+-------------
 id     | bigint | not null  | plain    |              | 
 body   | text   |           | extended |              | 
Indexes:
    "user_feedback_pkey" PRIMARY KEY, btree (id)
Has OIDs: no
以下是我从select中获得的信息:

=> select * from user_feedback;
 id | body  
----+-------
 34 | 16512
 35 | 16513
 36 | 16514
(3 rows)
实际的“正文”内容是所有行的“普通”文本,绝对不是这些数字


如何从psql中检索
body
列的实际值?

这将把LOB 16512的内容存储在file out.txt中:

\lo_export 16512 out.txt

虽然这里通常不建议使用@Lob(数据库备份问题…)。请参阅以获取备选方案。

Hibernate将值存储为
pg_largeobject
表中的越行对象,并将
pg_largeobject
项的对象ID存储在表中。看

听起来您希望使用内联字节数组(
bytea
)存储。如果是这样,您可能希望映射一个
字节[]
字段,而不使用
@Lob
注释,而不是
@Lob字符串
。请注意,此更改将不向后兼容-您必须从数据库导出数据,然后删除表并使用Hibernate的新定义重新创建它

如何映射数据的选择是由Hibernate而不是PostgreSQL进行的

见相关文件:


@Lob是一种将数据保存为clob或blob的注释,说到java,它应该是一个字节或字符数组,因此您正在postgresql中的字段中保存有关该数组的一些信息,我不知道是哪个值。尝试将注释更改为等效字符串。它应该会起作用。在这里看到一个参考:谢谢,我可以得到“我的内容”:)我试图使用通用的解决方案,但是我会考虑你的建议,因为我不希望改变PostgreSQL很快。