【发布时间】:2017-08-21 06:09:07
【问题描述】:
我有一个表的基本抽象类,抽象类不保留所有列
@Entity
@Table(name = "MYTABLE")
public abstract class MyTable {
//...
}
通常我在标准构建器中使用treat 从其派生类中获取所需的列数据
@Entity
public class MyClassA extends MyTable {
//...
}
@Entity
public class MyClassB extends MyTable {
//...
}
Root<MyTable> myTable = cq.from(MyTable.class);
cq.where(cb.or(
cb.equal(cb.treat(myTable, MyClassA.class).get(MyClassA_.infoA), "A"),
cb.equal(cb.treat(myTable, MyClassB.class).get(MyClassB_.infoB), "B")
))
这里 infoA 和 infoB 是数据库中 MYTABLE 中的同一列。
我的问题是如何编写类型安全的选择以在一次选择中同时选择 infoA 和 infoB?
【问题讨论】: