Salut,
nous avons un problème lorsqu' on essaye d'avoir une somme d'un champs composite appelé 'value' d'une classe mappée. Le champs composite est de type Monetaryamount, contenant une valeur (Double) et une monnaie (String).
Puisque l'on ne peut additionner des champs composites, on doit utiliser les fonctions du DBMS telles que 'DECiMAL' ou 'VARCHAR' pour concaténer la monnaie à la somme des montants.
Apparemment, Hibernate ne reconnait pas ces mots-clés et lance des exceptions (ex. "undefined alias" ou "( expected before )").
Bien que le statement SQL équivalent fonctionne bien lorsque l'on accède à la base de données depuis un client comme TOAD pour DB2, on n'arrive pas à obtenir le même résultat avec des queries HQL.
Quelqu'un voit-il une façon de faire qui réglerait ce problème?
Merci d'avance.
Code:
select varchar(char(decimal(obj.value.amount,5,2),',')) || obj.value.currency from MyObject as obj
Hibernate version: 2.1.7
Full stack trace of any exception that occurs:
1 errors occurred while listing (and calling getPathNames).
net.sf.hibernate.QueryException: ( expected before ) in select [select varchar(char(decimal(obj.value.amount,5,2),',')) || obj.value.currency
from MyObject as obj]
Name and version of the database you are using: IBM DB2 v.8.2
The generated SQL (show_sql=true): aucun