2017-08-23 1 views
-1

Voici mon hql requete:Comment passer le paramètre à @Query annotation avec hql

@Query("select a from Agent where a.visibility = true a order by a.id desc") 
public Page<Agent> getAllAgents(Pageable pageable); 

Je veux sélectionner tous les agents qui ont une visibilité réelle.

Dans ma classe Agent, j'ai un attribut de visibilité booléenne avec les fonctions getVisibility et setVisibility. Dans ma base de données "visibilité" stockée en bit (1).

J'ai essayé a.visibility = 1, ... = '1', ... = 'VRAI', ... = 'vrai', ... est vrai. Mais j'obtiens cette erreur:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: a near line 1, column 74 [select a from com.GemCrmTickets.entities.Agent where a.visibility = true a order by a.id desc] 

Des suggestions? Merci d'avance.

+0

Si vous utilisez '@Query (" sélectionnez un de l'agent où a.visibility = 1 un ordre par un.id desc ")' vous ne pouvez pas obtenir la même erreur – Jens

+0

Vous avez un 'a' après' true' dans votre requête qui rend la requête invalide. –

+0

Ne posez pas la même question encore et encore !!! –

Répondre

0

Votre requête n'est pas correct, vous avez un a supplémentaire entre true et order by.... Donc la requête correcte deviendrait comme ceci

select a from Agent a where a.visibility = true order by a.id desc 

Vous ne savez pas si cela résout tous vos problèmes. Vérifiez-le.

0

Changer votre requête à ceci:

@Query("select a from Agent a where a.visibility = true order by a.id desc") 
public Page<Agent> getAllAgents(Pageable pageable); 
0

Dans votre code, vous devez écrire le nom Alice de la table pour l'ajouter.

@Query("select a from Agent a where a.visibility = true order by a.id desc")