|
From: NHibernate J. <mik...@us...> - 2006-12-04 09:35:32
|
pagination select doesn't support 'distinct' for NHibernate.Dialect.FirebirdDialect
-----------------------------------------------------------------------------------
Key: NH-829
URL: http://jira.nhibernate.org/browse/NH-829
Project: NHibernate
Type: Bug
Components: Core
Versions: 1.2.0.Beta2
Reporter: Edward Zhou
Dialect: NHibernate.Dialect.FirebirdDialect
driver_class: NHibernate.Driver.FirebirdClientDriver
dotNet Framework 2.0
Firebird 2.0 final
Firebird .Net Provider 2.01
I encountered an bug, when I put 'distinct' into the HQL statement under pagination, it will cause failure:
eg:
[code]
string hql = "select distinct po from PurchaseBill po left join fetch po.Company company join po.Items pi where (po.BillDate >= :beginDate) and (po.BillDate <= :endDate) and (pi.Product.Id like :productId) order by po.BillDate Desc, po.BillId Desc"
IQuery query = session.CreateQuery(hql);
// seting up parameters
// ..
IList<PurchaseBill> list = query.SetFirstResult(0).SetMaxResults(100).List<PurchaseBill>();
[/code]
it will gets an error. and I trace the sql generated by NHibernate is:
select distinct first 100 purchasebi0_.f_key_id as f1_16_0_, ... from t_purchase_bill purchasebi0_ left outer join t_company company1_ on purchasebi0_.f_company_id=company1_.f_key_id inner join t_purchase_item items2_ on purchasebi0_.f_key_id=items2_.f_bill_key_id, t_product product3_ where ((product3_.f_id like @p0 and items2_.f_product_id=product3_.f_key_id)) order by purchasebi0_.f_bill_date Desc , purchasebi0_.f_bill_id Desc
Obviously, the keyword 'distinct' is placed in wrong position. it should be placed like
select first 100 distinct .....
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.nhibernate.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|