【问题标题】: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 错误,能否请您发布生成的查询?

标签: java oracle hibernate ora-00907


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2019-10-10
    • 2011-05-13
    • 2018-01-09
    • 2018-11-22
    相关资源
    最近更新 更多