gpt4 book ai didi

java - 如何显示在 pgAdmin3 中使用 Hibernate 插入的文本值?

转载 作者:行者123 更新时间:2023-11-29 14:22:05 26 4
gpt4 key购买 nike

我有一个表,其中有一列“描述”,类型为 TEXT。如果我这样做:

SELECT id, description FROM table_name;

我在“描述”列中看到一个数字而不是文本值。有什么办法可以看到文本值吗?

编辑:经过一些测试后,我发现了为什么我看到的是数字,但像克雷格这样的其他人看到的是真实的文本。这是因为数据是使用 Hibernate 插入的。

实体:


@Entity
public class Settings {



<pre><code>@Id
@GeneratedValue
private Integer id;

@Column(nullable = false, unique = true)
private String key;

@Lob
@Column(nullable = false, length = Integer.MAX_VALUE)
private String value;
</code></pre>

<p>// getters and setters</p>

}

记录结果:


Hibernate: create table Settings (id int4 not null, key varchar(255) not null, value text not null, primary key (id));



Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into Settings (key, value, id) values (?, ?, ?)
16:05:32,718 TRACE BasicBinder:81 - binding parameter [1] as [VARCHAR] - [GoogleSiteVerification]
16:05:32,718 TRACE BasicBinder:81 - binding parameter [2] as [CLOB] - []
16:05:32,726 TRACE BasicBinder:81 - binding parameter [3] as [INTEGER] - [4]

如果我在 pgAdmin3 中做这个选择:

select * from settings;

我看到这个结果:

1;"GoogleSiteVerification";"112351"

最佳答案

添加了 @Type(type = "org.hibernate.type.TextType") 到用 @Lob 注释的属性。现在它可以正常工作了。

它还解决了编码问题,这就是我首先打开 pgAdmin 的原因(看看里面有什么)。

技术细节:PostgreSQL 将 LOB 存储在单独的位置并通过数字标识符引用它(这个数字让我感到困惑)。

关于java - 如何显示在 pgAdmin3 中使用 Hibernate 插入的文本值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21257976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com