QueryDSL在生成的类中可能使用抽象类方法吗?

时间:2017-12-12 19:57:24

标签: java jpa querydsl

可以使用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();

但是在构建阶段(Construct meta classes)之后,生成的A类(QA.class),没有什么比这更像了。

1 个答案:

答案 0 :(得分:1)

JB Nizets评论是答案:

  

不需要将查询转换为SQL,并由   数据库。数据库并不了解和关心您的课程   方法。所有它知道的是它的表和列。 - JB Nizet 10   小时前