J'ai très simple requête sur le nom JPA (TopLink):table préfixes TopLink avec TL_ pendant la mise à jour le fonctionnement
UPDATE Server s SET s.isECM = 0
Je ne porte pas de cache ou de la validité des entités déjà pré-chargés. Mais la connexion à la base de données est effectuée à partir du compte restreint (seulement INSERT/UPDATE/DELETE). Il est apparu que TopLink sur cette requête exécute (et a échoué car TL_Server est existe pas) SQL très étrange:
INSERT INTO TL_Server (elementId, IsECM)
SELECT t0.ElementId, ?
FROM Element t0, Server t1
WHERE ((t1.elementId = t0.ElementId) AND (t0.elementType = ?))
bind => [0, Server]
Qu'est-ce que cela? Comment la simple mise à jour apparaît un INSERT? Pourquoi effectuer une requête de lien TL_?
Il est clair pour moi pourquoi toplink a échoué (voir ci-dessus - parce que le compte de la base de données n'a pas l'autorisation de créer des tables, donc ant TL_ échouera). Ma question est de dire à toplink de ne pas utiliser de tables temporaires du tout? Ou faire un indice à JPA que c'est vraiment une requête très simple. En tout cas merci (+1) pour l'idée avec la requête native. – Dewfy