【问题标题】:QueryDSL It's possible usage of abstract Class methods in generated classes?QueryDSL 在生成的类中可能使用抽象类方法吗?
【发布时间】: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!我已经厌倦了在评论中用正确答案查看未回答的问题!

标签: java jpa querydsl


【解决方案1】:

JB Nizets 的评论就是答案:

不需要将查询转换为 SQL,并由 数据库。数据库不知道也不关心你的类和 方法。它所知道的只是它的表和列。 – JB 尼泽特 10 几小时前

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2013-06-28
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多