Hibernate @WhereJoinTable麻烦

时间:2011-02-14 14:44:43

标签: hibernate jointable

我已经习惯了冬眠,但我不时地遇到绊脚石,这是另一个。

我正在努力实现以下目标:

@OneToMany
@JoinTable(name = "inter_spec",
        joinColumns = { @JoinColumn(name = "inter_id") },
        inverseJoinColumns = { @JoinColumn(name = "spec_id") })
@WhereJoinTable(clause = "spec_type=SECTION")
public List<Section> getSections() {
    return sections;
}

但是在运行单元测试时出现以下错误:

  

[ERROR] JDBCExceptionReporter - 找不到“SECTIONS0_.SECTION”列; SQL语句:

我想要的只是应用Where子句,所以我的List部分只有SECTION类型数据。

如果我删除了单元测试通过的Where子句,则List上的断言具有预期的数据。

感谢阅读。

1 个答案:

答案 0 :(得分:9)

啊,这一切都会发生,我发布一个问题后我就明白了!

基本上,Where子句中的SECTION是Java代码中的枚举,因此该行应该是:

@WhereJoinTable(clause = "spec_type='SECTION'")

注意SECTION周围的单引号,它们之前没有!