6

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

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

@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;
}

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

[错误] JDBCExceptionReporter - 未找到列“SECTIONS0_.SECTION”;SQL 语句:

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

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

谢谢阅读。

4

1 回答 1

9

啊,这总是发生,只要我发布一个问题我就明白了!

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

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

请注意之前不存在的 SECTION 周围的单引号!

于 2011-02-14T14:51:44.273 回答