À l'aide de la clause dans un natif de la requête sql avec Hibernate 3.2.2
Dans un mode similaire à la question trouvés ici: À l'aide de la clause dans un natif de la requête sql; je tente de faire usage d'un IN()
clause par un natif de la requête SQL dans Hibernate. Alors que l'auteur de la question a été en mesure d'utiliser JPA, je ne suis pas. En outre, je suis coincé avec la version 3.2.2.
Il semble que Hibernate ne prend pas en charge IN()
nativement, parce qu'il tente de convertir ma liste (tableau de longue primitives) de Id en forme binaire lors de l'application, les paramètres de la requête: query.setParameter("publisherGroups", [1243536264532,1243536264533,1243536264535]);
De Mise En Veille Prolongée:
SELECT
sum(C2CReportedConversion) as c2CConversion,
sum(C2CReportedRevenue) as c2CRevenue,
sum(I2CReportedConversion) as i2CConversion,
sum(I2CReportedRevenue) as i2CRevenue,
sum(Clicks) as clicks,
sum(Impressions) as impressions,
sum(Requests) as requests,
sum(Views) as views,
coalesce(Name,
DisplayName)
FROM
UiTemplateReportingCache
JOIN
AdUnit USING (AdUnitId)
WHERE
PublisherId = ?
AND PublisherGroupId IN (
?
)
AND Date >= ?
AND Date <= ?
GROUP BY
coalesce(Name,
DisplayName)
À partir de la base de données mysql journaux:
SELECT sum(C2CReportedConversion) as c2CConversion, sum(C2CReportedRevenue) as c2CRevenue, sum(I2CReportedConversion) as i2CConversion, sum(I2CReportedRevenue) as i2CRevenue, sum(Clicks) as clicks, sum(Impressions) as impressions, sum(Requests) as requests, sum(Views) as views, coalesce(Name, DisplayName) FROM UiTemplateReportingCache JOIN AdUnit USING (AdUnitId) WHERE PublisherId = 1239660230591 AND PublisherGroupId IN (_binary'��\0ur\0[Jx ��u�\0\0xp\0\0\0
\0\0!���T\0\0!���U\0\0!���W\0\0!���m\0\0!���n\0\0!���t\0\0!���{\0\0!���|\0\0!���}\0\0!���~\0\0#��\0\0$|��S') AND Date >= '2011-03-17 00:00:00' AND Date <= '2011-03-18 23:59:59' GROUP BY coalesce(Name, DisplayName)
Avis de la _binary
partie qui commence le IN()
valeur. Quel est le truc pour faire ce travail? Sera la version d'Hibernate je suis en utilisant même le faire? Si non, quelles sont les alternatives?
Merci d'avance,
Carl
OriginalL'auteur carlsz | 2011-04-04
Vous devez vous connecter pour publier un commentaire.
Répondu à ma propre question et ont RTFM avais avant de poster. Le "truc" consiste à utiliser
query.setParameterList()
par opposition àquery.setParameter()
.+1 pour l'ajout de la solution.
1 pour l'ajout de la solution
toutes les idées sur la façon de l'utiliser avec unnest() ?
OriginalL'auteur carlsz