MySQL 到 JPQL 内部联接
MySQL to JPQL Inner Join
我是 JPQL 的新手,在将我的 SQL 翻译成 JPQL 时遇到了一些困难。我有一个适用于 MYSQL:
的简单查询
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:
@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"
)
我得到的错误是:
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 后 return 每个订单的价格 table。
感谢观看。
干杯,
泽布
猜一猜:
query="SELECT ao.price, bo.price FROM OrderBook " +
"INNER JOIN askorder ao " +
"INNER JOIN bidorder bo " +
"WHERE ao.ORDERID = :askOrderId"
我是 JPQL 的新手,在将我的 SQL 翻译成 JPQL 时遇到了一些困难。我有一个适用于 MYSQL:
的简单查询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:
@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"
)
我得到的错误是:
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 后 return 每个订单的价格 table。
感谢观看。 干杯, 泽布
猜一猜:
query="SELECT ao.price, bo.price FROM OrderBook " +
"INNER JOIN askorder ao " +
"INNER JOIN bidorder bo " +
"WHERE ao.ORDERID = :askOrderId"