java - 为什么hibernate在insert和delete操作时会生成 'T_' prefix tableName?

标签 java sql database oracle hibernate

数据库:ORACLE

我们正在为 hibernate 和 hbm 文件使用 ImprovedNamingStrategy,我们明确给出表名。

但是,在删除和插入操作期间,它仍然会针对某些表生成“T_”作为前缀和“HT_”作为前缀。

这会导致 SQLGrammarException:

org.hibernate.exception.SQLGrammarException: 无法执行语句

请注意,这是在使用 Oracle 数据库时发生的,而在 HSQL 或 Postgres 中则不会发生。

最佳答案

您似乎正在运行一些批量操作,这是临时表。这是一个 topic在官方 Hibernate 论坛上,很可能有同样的问题。这是一个 article , 解释为什么需要这个表。

解决方法是避免批量操作或让 Hibernate 创建临时表。

关于java - 为什么hibernate在insert和delete操作时会生成 'T_' prefix tableName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40609285/

相关文章:

sql - Doctrine 列 id 在 PostgreSQL 上不存在

java - Wait()/notify() 同步

java.nio.file.InvalidPathException : Malformed input or input contains unmappable characters when using national characters

java - SortedSet<TestClass> 比较一个字段的相等性并按另一个字段排序

sql - 从 bool 列 postgresql 创建 varchar 列

java - 无法将值从 Java 代码传递到 JSP

mysql - 数据库触发器根据一张表更新另一张表

java - 在 Graphstream 中显示平行边

SQL 服务器 : Query Joining Two Tables

用于获取用户和关注者帖子的 Mysql 选择查询