Je veux que la requête ne renvoie aucune valeur. Je ne peux pas simplement ne pas interroger la base de données, alors j'aimerais ajouter des conditions inaccessibles aux prédicats, quelque chose comme «où 1 <> 1 '. Mais le critèrebuilder.equal () ne permet pas de le faire. Y a-t-il un moyen d'atteindre l'objectif? P>
merci. p>
3 Réponses :
Comment sur
CriteriaBuilder.notEqual(CriteriaBuilder.literal(1), 1)
Que diriez-vous de cela:
CriteriaBuilder.isTrue(CriteriaBuilder.literal(Boolean.FALSE));
Je ne pense pas qu'il y ait d'autres technologies, à compter de la foudre dans les classes de mise en œuvre d'une mise en œuvre de la JPA particulière.
Javadoc de CritèreBuilder: "Créez une disjonction (avec zéro disjonction). Une disjonction avec zéro disjonctes est false."
CriteriaBuilder cb.. Predicate itsFalse = cb.disjunction();
Essayez avec le 1 = 0 pour plus de détails, voir cet article [ Stackoverflow.com/questions/6145809/mysql-where-1-0-confusi On / ... [1]: Stackoverflow.com/questions/6145809/mysql-where-1-0-confusio n / ... < / a>
@Pratik, le problème est de savoir comment écrire la condition dans les critères API. La condition elle-même n'est pas un problème.