首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL到JPQL内部连接

MySQL到JPQL内部连接
EN

Stack Overflow用户
提问于 2015-10-20 20:19:35
回答 1查看 339关注 0票数 0

我刚接触过JPQL,在将我的SQL转换成JPQL方面有些困难。我有一个在MYSQL上工作的简单查询:

代码语言:javascript
复制
SELECT askorder.price, bidorder.price from OrderBook JOIN askorder 
ON OrderBook.ASKORDERID_ORDERID = askorder.ORDERID
JOIN bidorder ON OrderBook.BIDORDERID_ORDERID = bidorder.ORDERID
WHERE askorder.ORDERID = 2;

我曾试图将其翻译成JPQL,但我确信这是错误的。具体来说,我认为这可能是ON关键字,我不知道如何将其转换为JPQL:

代码语言:javascript
复制
@NamedQuery(
    name="findOrderBooksPrices",
    query="SELECT ao.price, bo.price from OrderBook bo, OrderBook ao" +
    "INNER JOIN ao ON bo.ASKORDERID_ORDERID = ao.ORDERID " + 
    "INNER JOIN bo ON OrderBook.BIDORDERID_ORDERID = bo.ORDERID " +
    "WHERE ao.ORDERID = :askOrderId"
)

我得到的错误是:

代码语言:javascript
复制
Internal Exception: Exception [EclipseLink-7158] (Eclipse Persistence
Services - 2.5.0.v20130507-3faac2b): 
org.eclipse.persistence.exceptions.ValidationException
Exception Description: Error encountered when building the @NamedQuery
[findOrderBooksPrices] from entity class [class  
org.eclipse.persistence.internal.jpa.metadata.queries.
NamedQueryMetadata].Internal Exception: java.lang.ClassCastException: 
org.eclipse.persistence.jpa.jpql.parser.NullExpression cannot be cast to 
org.eclipse.persistence.jpa.jpql.parser.IdentificationVariable. Please
see server.log for more details.

我希望它在提交订单id后,从每个订购表中退回价格。

谢谢你找我。干杯,泽布

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 20:30:34

只是猜测一下:

代码语言:javascript
复制
 query="SELECT ao.price, bo.price FROM OrderBook " +
    "INNER JOIN askorder ao " + 
    "INNER JOIN bidorder bo " +
    "WHERE ao.ORDERID = :askOrderId"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33246097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档