Question

Nous rencontrons le comportement de mise en veille prolongée étrange avec hbm2ddl.auto ensemble à update.

Dans notre configuration de test, nous avons deux utilisateurs de bases de données, l'une contenant les tables pour notre application bêta, l'autre est principalement utilisé pour le développement. C'est à dire. mêmes noms de table avec différents utilisateurs. Lorsque de nouvelles tables doivent être créées, nous le faisons en utilisant hbm2ddl.auto=update.

Maintenant, tout à coup le comportement étrange est:. Le processus de mise à jour pour les tables existantes regarde avec le mauvais utilisateur et crée les pas trouvé avec l'utilisateur droit

par exemple. si les tableaux ci-dessous existe

USER_A.TABLE_1
USER_B.TABLE_2

et nous mettons à jour avec trois tables configurées: TABLE_1, TABLE_2, TABLE_3 en utilisant Utilisateur_b, nous nous retrouvons avec

USER_A.TABLE_1
USER_B.TABLE_2
USER_B.TABLE_3

TABLE_1 n'est créée pour USER_B. Après avoir renommé USER_A.TABLE_1 à USER_A.TABLE_0 et mettre à jour à nouveau nous nous retrouvons avec le résultat escompté:

USER_A.TABLE_0
USER_B.TABLE_1
USER_B.TABLE_2
USER_B.TABLE_3

Est-ce que aucun sens à tout le monde? Y at-il quelque chose comme un cache de mise en veille prolongée interne comme souvenir « Hey je l'ai déjà créé ce tableau sur ce serveur (et je ne se soucient pas de l'utilisateur) ».

Nous avons passé pas mal de tests pour rassurer ce n'est pas un problème de configuration, reproduit ce sur des machines différentes, différentes configurations, de fourmis ou en utilisant l'IDE, ce qui rend le mot de passe user_a sûr ne peut être trouvée nulle part dans le répertoire de construction, etc. Nous sont sûrs à 100%, le comportement est décrit comme - mais nous sommes complètement d'idées Qu'advient-il

.

Je serais très heureux d'entendre vos idées à ce sujet, car ce problème est lancinante depuis un certain temps.

Merci beaucoup, Peter

Était-ce utile?

La solution

Y at-il quelque chose comme un cache de mise en veille prolongée interne comme souvenir « Hey je l'ai déjà créé ce tableau sur ce serveur (et je ne se soucient pas de l'utilisateur) ».

Non

. Ce qui est probablement se produire est que user_a peut voir les tableaux créés sous le compte Utilisateur_b, et vice-versa. Il est pas clair que la base de données que vous utilisez, mais je voudrais essayer de configurer Hibernate d'utiliser deux schémas différents, en plus d'utiliser les utilisateurs tout simplement différents. Vous pouvez également essayer de définir la propriété « hibernate.default_schema », mais je ne suis pas sûr que cela ne résoudra votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top