gpt4 book ai didi

java - 使用 Oracle 和 PostgreSQL 的长文本列 hibernate

转载 作者:搜寻专家 更新时间:2023-11-01 03:47:24 26 4
gpt4 key购买 nike

我正在尝试让实体在 Spring Boot (1.4.4) 应用程序中使用 Oracle (11.2) 和 PostgreSQL(9.4)。

我的实体包含一个长文本字段(超过 4000 个字符)。在 Oracle 中合适的数据类型是 CLOB,在 PostgreSQL 中对应的类型是 TEXT。

我能够让它与 PostgreSQL 一起工作

@Column(name = "LONG_TEXT", columnDefinition="TEXT")
private String longText;

但是,由于 CLOB 需要 @Lob 注释,Oracle 在 hibernate 验证阶段会失败。

以下代码适用于 Oracle

@Lob
@Column(name = "LONG_TEXT")
private String longText;

但是这次从 PostgreSQL 读取时失败,出现以下异常:

PSQLException: Large Objects may not be used in auto-commit mode

Stack overflow suggests在事务中执行查询。忽略在选择查询中调用事务的可疑要求,将 @Transactional 添加到查询方法没有帮助。

欢迎任何想法。

最佳答案

我们得出的解决方案是采用@Lob 和@Transactional 方法。

主要问题是 @Transactional 注释的放置,导致 PSQLException。一旦修复,我们就可以使用这两种类型的数据库。

关于java - 使用 Oracle 和 PostgreSQL 的长文本列 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930547/

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