java - EJB QL 语法错误

标签 java exception syntax jpql ejbql

在我的应用程序中,我有以下 2 个实体:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Commentable implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;
    protected long createdDate;
    ...
}

@Entity
public class Announcement extends Commentable implements Serializable { 

    private int    type;  
    private String title;
    @Column(columnDefinition = "MEDIUMTEXT")
    private String content;
    ...
}

当我尝试从公告表中获取某些行时,我不断在以下行中收到语法错误:

Query q = em.createQuery("SELECT A FROM Announcement A JOIN Commentable C ON A.id = C.id WHERE A.type=:type ORDER BY C.createdDate DESC");

这是堆栈跟踪:

Caused by: Exception [EclipseLink-8023] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing the query [SELECT A FROM Announcement A JOIN Commentable C ON A.id = C.id WHERE A.type=:type ORDER BY C.createdDate DESC].
Internal Exception: org.eclipse.persistence.internal.libraries.antlr.runtime.EarlyExitException

如果您能告诉我我在这里做错了什么,我将非常感激。

最诚挚的问候, 詹姆斯·特兰

最佳答案

如果“公告”扩展了“可评论”,则不需要加入:

select a from Announcement a where a.type = :type order by a.createdDate desc

关于java - EJB QL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10652405/

相关文章:

javascript - 将 require() 语法翻译成 import syntax node js

java - NoSuchPortException 在 Windows 上使用 RXTX Java 库?

java - JSON 数据未在 JSP 中显示

unit-testing - 在 Jest 中编写单元测试时预期会出现特定错误

c++ - 运算符重载以构造异常消息

python - pix[x, y] 在 Python 中是什么意思

java - 从 drools 5 (5.5.0.Final) 到 drools 6 的升级过程

java - spring data jpa 和 hibernate 之间的性能差距 - jHipster

java - 将 neo4j 与 jdk 1.7 一起使用时出错

syntax - 为什么选项卡在 YAML 解析器的键/值对中有效?