Sono di fretta, quindi voglio solo fare una breve domanda su querydsl. Secondo la mia ricerca, query dsl non supporta la stored procedure ma può supportare le funzioni del database. La mia domanda è come possiamo richiamare quelle funzioni del database usando querydsl?Come chiamare la funzione mysql usando querydsl?
risposta
Nella query è possibile utilizzare iniezioni basate su TemplateExpression di sintassi arbitraria JPQL.
ad es.
query.where(Expressions.booleanTemplate("func1({0}, {1})", arg1, arg2));
Se si utilizza Hibernate 4.3 o qualsiasi altro fornitore di JPA 2.1 compatibile è possibile utilizzare la sintassi della funzione per richiamare le funzioni SQL https://bugs.eclipse.org/bugs/show_bug.cgi?id=350843
Così l'esempio potrebbe trasformarsi in
query.where(Expressions.booleanTemplate("function('func1', {0}, {1})", arg1, arg2)"));
Wow .. che coincidenza timo .. ho appena visto e letto diapositiva .. hai capito quasi tutto quello che ho bisogno di sapere .. grazie .. e proverò sicuramente il tuo suggerimento .. –
@Timo Sto provando questo, ma ricevo un: org.hibernate.hql.internal.ast.QuerySyntaxException: nodo AST imprevisto – renanlf
Bello. E inoltre è possibile gestire più funzioni (funzioni interne nidificate) in una singola chiamata? – spr
Non sarebbe [ questo articolo] (http://luisfpg.blogspot.be/2013/02/the-beauty-of-querydsl-in-sorting.html) rispondi alla tua domanda? –
sì, ci ho passato un sacco di tempo. Ma è un po 'obsoleto in base alla versione corrente di querydsl. –
Il mio male. Considera che non ho detto nulla quindi :-) –