1

私の問題を解決するのを手伝ってください-sqlplus で同じクエリを実行している場合、問題なく動作しています。

net.sf.hibernate.QueryException: , expected in SELECT [SELECT SUM(CASE WHEN s.SettlementCurrencyName = r.ContractCurrency THEN p.ContractNet WHEN s.SettlementCurrencyName = r.LocalCurrency THEN p.ContractNet/ta.LiquidationRate WHEN s.SettlementCurrencyName IS NULL THEN p.ContractNet/ta.LiquidationRate ELSE p.ContractNet/ta.LiquidationRate END)"PAID AMOUNT", COUNT(t.TX_IDENTIFIER) "PAID TXS" FROM com.uniteller.txcore.Payment p, com.uniteller.txcore.Transaction t, com.uniteller.txcore.TxAccounting ta, com.uniteller.txcore.Remittance r, com.uniteller.txcore.SellingAgentSettlement s WHERE t.isLRCTx = 1 AND t.SellingCompany = :lrcCode AND s.SettlementCurrencyName(+) = r.ContractCurrency AND s.Id.DestCurrencyName(+) = r.ContractCurrency AND s.Id.Code(+) = r.SellingAgent AND r.ContractCurrency = :contractCurrency AND p.PaidAccountDt > :lastPaidAcDt AND p.TxIdentifier = t.TxIdentifier AND p.TxIdentifier = r.TxIdentifier AND p.TxIdentifier = ta.TxIdentifier]
at net.sf.hibernate.hql.SelectParser.token(SelectParser.java:169)
at net.sf.hibernate.hql.ClauseParser.token(ClauseParser.java:87)
at net.sf.hibernate.hql.ClauseParser.end(ClauseParser.java:114)
at net.sf.hibernate.hql.PreprocessingParser.end(PreprocessingParser.java:143)
at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:30)
at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
at net.sf.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:295)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1572)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1543)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
at com.uniteller.tools.databroker.Main.main(Main.java:85)
4

2 に答える 2

1

問題は、クエリをHQLクエリとして実行しようとすることだと思います。

Query query = session.createQuery(...);

しかし、クエリがHQLではないことがわかったので、ネイティブSQLクエリとして実行する必要があります。

SQLQuery query = session.createSQLQuery(...);
于 2012-08-04T07:50:18.370 に答える