0

我正在使用 eclipse 链接作为 JPA 实现。我有一个这样的命名查询:

@NamedQuery(name = "QueryName",
            query = "SELECT c FROM Customer c, AccountingUnit au where c.contract.state = :state AND ...")

生成的 SQL 查询实际上将查询超过 4 个表,这些表获得表别名 t0、t1、t2、t3,如下所示:

SELECT ... FROM CUSTOMER t0, ACCOUNTING_UNIT t1, CUSTOMER_CONTRACT t2, ...

现在我想添加一个 Oracle 提示,当我说:

query.setHint("eclipselink.sql.hint" , "/*+ USE_NL(t0 t2) */");

但我更喜欢这样写:

query.setHint("eclipselink.sql.hint" , "/*+ USE_NL(Customer Customer_Contract) */");

有没有办法做到这一点?

4

1 回答 1

0

恕我直言,当使用别名时 Oracle 只会在包含这些别名时使用提示。

我怀疑 EclipseLink 甚至试图区分各种提示。提示中的单词也可以是索引名或一些魔术常数。

最好的办法是检查 EclipseLink 源代码。

于 2015-12-03T15:30:53.533 回答