休眠错误,如何解决?
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 方言。
【讨论】:
以上是关于休眠错误,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章