saca-rolhas Posted October 9, 2013 at 08:27 AM Report #528148 Posted October 9, 2013 at 08:27 AM Boas estou a tentar fazer com que o Hibernate detecte se as tabelas mapeadas existem na base de dados a que se vai ligar e caso não existam , ou não estejam coerentes com a estrutura pretendida, fazer um update das tabelas. Sei que o Hibernate escreve semelhante informação na consola do Java mas o que me dava realmente jeito é a possibilidade de agarrar tais ocorrências como excepções. Tentei pesquisar, não encontrei nada... sugestões? The worst part of censorship is ****
aladino77 Posted October 13, 2013 at 02:13 AM Report #528711 Posted October 13, 2013 at 02:13 AM Map<String, ClassMetadata> map = (Map<String, ClassMetadata>) sessionFactory.getAllClassMetadata(); SessionFactoryImpl sfImpl = (SessionFactoryImpl) sessionFactory; for(String entityName : map.keySet()){ String tableName = ((AbstractEntityPersister)sfImpl.getEntityPersister(entityName)).getTableName(); System.out.println(entityName + "\t" + tableName); }
saca-rolhas Posted October 14, 2013 at 08:21 AM Author Report #528842 Posted October 14, 2013 at 08:21 AM (edited) Obrigado pela resposta, contudo esse método só me apresenta os objectos mapeados pelo Hibernate (Ou seja todos os objectos que possuam um ficheiro .hbm.xml) e não mostra as tabelas criadas pelo Hibernate que estão mapeadas apenas nas relações entre outros objectos. E mesmo se não existir as tabelas na base de dados o resultado do código é o mesmo. O que me é pretendido é obter dados semelhantes ao que é verificado pelo Hibernate na propriedade de update do hibernate.hbm2ddl.auto que verifica se existem as tabelas e se estão coerentes com os mapeamentos e actualiza-as caso contrário. O que eu pretendo que a minha aplicação faça é consoante certos caso actualizar ou não as tabelas ou seja por outras palavras eu quero ter controlo sobre a opção update e decidir o que deve ser updated ou não e saber o que não está consistente na base de dados. Isto tudo usando o hibernate porque posso usar a biblioteca java.sql para pedir isso ás bases de dados, no entanto por esse método teria de fazer queries diferentes para casa tipo de base de dados. Edited October 14, 2013 at 08:41 AM by saca-rolhas The worst part of censorship is ****
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now