【发布时间】:2017-12-12 19:57:23
【问题描述】:
可以使用 queryDSL 生成的类来引用类中的抽象方法吗?
这是一个例子:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
class A {
@Id private Long id;
public getId/setId;
protected abstract Date finalDate();
}
@Entity
class B extends A {
private Date finalDate;
public getFinalDate/setFinalDate;
}
@Entity
class C extends A {
private B b;
public getFinalDate(){return b.getFinalDate());
}
我想使用这样的查询:
new JPAQuery<A>(em)
.select(a)
.where(a.finalDate.isNotNull())
.fetch();
但是在构建阶段(构造元类)之后,生成的 A 类(QA.class)并没有类似的东西。
【问题讨论】:
-
没有。查询需要转换为 SQL,并由数据库执行。数据库不知道也不关心你的类和方法。它只知道它的表和列。
-
@JBNizet 请不要将答案发布为 cmets!我已经厌倦了在评论中用正确答案查看未回答的问题!