休眠错误,如何解决?

Posted

技术标签:

【中文标题】休眠错误,如何解决?【英文标题】:Hibernate bug, how to workaround? 【发布时间】:2010-07-01 12:54:27 【问题描述】:

我使用 Hibernate 3.5.3 和 Oracle 10g 数据库

我有以下关系的bean

@OneToMany
@JoinTable(name="dispenser_accounts",
        joinColumns=@JoinColumn(name="terminal_id"), 
        inverseJoinColumns=@JoinColumn(name="dispenser_section_id"))
@MapKey(name="dispenserNumber")
private Map<Integer, DispenserAccount> activeDispensers = new HashMap<Integer, DispenserAccount>();

当我尝试从 activeDispensers 获取数据时,休眠生成语法错误的 sql

SQL Error: 907, SQLState: 42000
ORA-00907: missing right parenthesis

如何解决这个错误?

谢谢!

【问题讨论】:

好吧,找出正在发出的 SQL。 我已经找到它了,但我不知道如何修复它。 这里不应该使用MapKeyColumn注解吗?你能展示物理模型吗?顺便问一下,这个“bug”是否有任何 Jira 问题开放? 如果出现 oracle 错误,能否请您发布生成的查询? 【参考方案1】:

答案可能是覆盖Oracle方言中的特定方法并修复问题(不看SQL很难说)。

您可以尝试切换到可能没有相同错误的不同 Oracle 方言。例如Oracle9 方言。

【讨论】:

以上是关于休眠错误,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

轻松解决电脑不休眠?如何设置iMac电脑不休眠模式的方法

如何解决休眠双向映射导致的json序列化器中的循环引用?

Windows Aero Glass 背景在休眠后损坏。我该如何解决这个问题?

我的第一个休眠程序出现错误,请帮助我解决错误

为啥休眠不能执行命令

即使在两者之间发生错误,休眠也会自动更新我的实体