tronquer/supprimer à partir de la classe d'entité
J'ai ma classe d'entité disponibles via une méthode. Je suis à essayer de comprendre, comment via l'APP JPQL ou les Critères de l'API, je pouvais émettre un tronquer ou de supprimer des éléments. Je pense que les critères de l'api est plus naturel pour travailler avec des classes, et de tronquer est un fonctionnement plus rapide de sorte que ces sont préférées. C'est ce que j'ai mis en place jusqu'à présent, mais vous ne savez pas quoi ajouter/modifier les informations le concernant.
CriteriaBuilder cb = this._em().getCriteriaBuilder();
cb.createQuery( _entityClass() ).from( _entityClass() );
remarque: _entityClass
retourne MyEntity.class
, je n'ai pas d'autres références à MyEntity
c'est une généralisation de l'application.
Je pense qu'il n'y a pas une telle chose comme
truncate
en JPQL, vous pouvez écrire une requête native ou à utiliser JPQL "supprimer".
OriginalL'auteur xenoterracide | 2014-04-24
Vous devez vous connecter pour publier un commentaire.
En supposant que
MyEntity
se réfère à la table que vous souhaitez déposer, vous pouvez procéder comme suit:ou avec une approche généralisée:
De même pour JPQL/requêtes SQL:
ou avec une approche généralisée:
Avec les Critères d'API, vous ne pouvez utiliser SELECT, UPDATE, DELETE, donc TRONQUER n'est pas possible.
Qu'entendez-vous par "fait de travailler à partir de la classe"? Pourriez-vous préciser la question?
J'ai une référence à
MyEntity.class
je n'ai pas la chaîne"MyEntity"
en fait, j'ai muté afin queCriteriaDelete<MyEntity>
est juste une fonte(CriteriaDelete)
parce qu'il ne m'aime pas plus paramaterizing avecENTITY
Vous pouvez essayer d'utiliser Java génériques, donc vous n'avez pas besoin de cast et de paramétrer une requête donnée, voir la mise à jour de la réponse ci-dessus...
il n'a pas l'air d'aimer mon génériques dans ce cas, quelque chose à propos de la s'étend dans le générique
OriginalL'auteur wypieprz