Bonjour

Pour des soucis de rapidité, j'aimerai pouvoir appeller une procedure stockée dans ma base Oracle dans une requete HQL. Je suis sous Hibernate 3 et le but de la fonction est de renvoyer 1 ou 0 selon les 2 parametres qui sont passés.

Donc avoir une requete HQL du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
from element in element.class where 1=1 and marketExists(element.marketLab, :markets) and...
Tout ce que j'ai trouvé dans mes recherches, c'est l'appel de procédures en tant que tel, mais ma requete est générée selon des criteres de recherches et je ne peux pas avoir une fonction générique pour toutes les recherches possibles

J'ai essayé de redéfinir un dialecte qui étende le OracleDialect pour y ajouter ma fonction avec la methode registerFunction, mais je n'ai pas l'impression que ca marche
Voila ce que j'ai mis dans le constructeur de mon dialecte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
super();
super.registerFunction("marketExists", new SQLFunctionTemplate(Hibernate.INTEGER, "marketExists(?1, ?2)"));//$NON-NLS-1$//$NON-NLS-2$
Tout ce que j'obtiens pour l'instant, c'est une QuerySyntaxException avec comme cause : unexpected AST node à l'endroit ou j'appelle ma fonction

Si quelqu'un a une idée pour appeller une procédure stockée au sein de ma requete, je suis preneur
Si vous voulez plus d'infos, hésitez pas à demander