PostgreSQL データベースに対する HQL クエリ:
var checkLines = _Session.CreateQuery(
@"select lines from FinancialStatement statement
inner join fetch statement.FinancialStatementLines lines
where statement.FinancialStatementId = :statementId
and lines.TransactionType = :transactionType
and length(lines.CheckNumber) > 0")
.SetParameter("statementId", statement.FinancialStatementId)
.SetParameter("transactionType", TransactionTypes.Debit)
.List<FinancialStatementLine>();
クエリは問題ないように見えますが、私は HQL の初心者です。誰かが私が間違っていることを教えてもらえますか? 問題は HQL にあると思います。他の場所を探す必要があると思われる場合はお知らせください。
プロットが濃くなる
上記の HQL によって作成されたクエリを調べると、次のようになっていることがわかりました。
select
financials1_.LineId as LineId14_,
financials1_.FinancialStatementId as Financia2_14_,
financials1_.APPaymentID as APPaymen3_14_,
financials1_.EffectiveDate as Effectiv4_14_,
financials1_.Amount as Amount14_,
financials1_.TransactionType as Transact6_14_,
financials1_.CheckNumber as CheckNum7_14_,
financials1_.Description as Descript8_14_,
financials1_.VendorDescription as VendorDe9_14_,
financials1_.FinancialStatementId as Financia2_,
financials1_.LineId as LineId
from
FinancialStatements financials0_
where
financials0_.FinancialStatementId=:p0
and financials1_.TransactionType=:p1
and length(financials1_.CheckNumber)>0
...今、何?句のselect
エイリアスがfrom
句に存在しないため、エラーが説明されますが、もちろん、エラーが存在する理由はわかりません。
どうすればこれを回避できますか?