]
Brad Cupit commented on HHH-4044:
---------------------------------
I worked around this issue via a Hibernate Interceptor. Specifically the
{{onPrepareStatement(sql)}} method.
In that method I used a regular expression to see if the SQL contained a {{select ...
count(...) ... from}}, and if it counted two or more columns I replaced it with
{{count\(*)}}
Worked like a champ!
p.s. I'm using Spring Data and Querydsl so I couldn't just change the HQL/JPQL
manually
ejbql select count() and composite keys problem
-----------------------------------------------
Key: HHH-4044
URL:
https://hibernate.onjira.com/browse/HHH-4044
Project: Hibernate ORM
Issue Type: Bug
Components: core
Affects Versions: 3.2.6
Environment: Jboss 4.2.2, JDK 1.5.18, Seam 2.1.2, MSSQL2000
Reporter: Thierry Accart
Priority: Critical
Original Estimate: 2h
Remaining Estimate: 2h
Hi
we're using seam 2.1.2 on JBoss 4.2.2 with JDK 1.5.18.
Our db is hosted on mssql server.
our persistence.xml contains sets hibernate.dialect to
org.hibernate.dialect.SQLServerDialect.
UserRole is an entity containing userid and roleid as a composite key.
When the following ejbql query is run :
select count(userRole) from UserRole userRole
sql receives the following statement :
declare @P1 int
set @P1=NULL
declare @P2 int
set @P2=0
declare @P3 int
set @P3=0
exec sp_cursorprepexec @P1 output, @P2 output, NULL, N'select
count((userrole0_.roleId, userrole0_.userId)) as col_0_0_ from TP_UM_UserRole
userrole0_', 16, 8193, @P3 output
select @P1, @P2, @P3
the count((userrole0_.roleId, userrole0_.userId)) is not understood by mssql server,
causing an error " Incorrect syntax near ','."
I think that a simple select count (*) would work fine.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: