我已经习惯了 hibernate ,但我时不时地跌跌撞撞,这是另一个。
我正在努力实现以下目标:
@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 - Column "SECTIONS0_.SECTION" not found; SQL statement:
我想要的只是应用 Where 子句,以便我的 List 部分只有 SECTION 类型的数据。
如果删除单元测试通过的 Where 子句,则列表上的断言具有预期的数据。
谢谢阅读。
最佳答案
啊,这总是发生,我一发布问题就想通了!!
基本上,Where 子句中的 SECTION 是 Java 代码中的 Enum,因此该行应该是:
@WhereJoinTable(clause = "spec_type='SECTION'")
注意之前没有的 SECTION 周围的单引号!
关于 hibernate @WhereJoinTable 麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4993498/