我已经习惯了冬眠,但我不时地遇到绊脚石,这是另一个。
我正在努力实现以下目标:
@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上的断言具有预期的数据。
感谢阅读。
答案 0 :(得分:9)
啊,这一切都会发生,我发布一个问题后我就明白了!
基本上,Where子句中的SECTION是Java代码中的枚举,因此该行应该是:
@WhereJoinTable(clause = "spec_type='SECTION'")
注意SECTION周围的单引号,它们之前没有!