¿Hay alguna manera de recuperar el nombre de todas las tablas que administra el SessionFactory
? Por ejemplo, ¿todas las tablas que se agregaron a través de AnnotationConfiguration.addAnnotatedClass(...))
?Obtener todos los nombres de tabla configurados en SessionFactory
6
A
Respuesta
12
Aquí se howto conseguir uno nombreTabla con getClassMetadata
ClassMetadata cm = sessionFactory.GetClassMetadata(className);
AbstractEntityPersister aep = (AbstractEntityPersister) cm;
String tableName = aep.getTableName();
[EDIT]: se puede encontrar toda llamando getAllClassMetadata()
y encontrar todos los nombres de tabla como que
Map m = sessionFactory.GetAllClassMetadata();
/* iterate map*/
AbstractEntityPersister aep = m.get(/*key (className)*/)
String tableName = aep.getTableName();
2
Si está utilizando JPA en lugar de dependencia directa en hibernación. El siguiente código debería ayudar a obtener todos los nombres de tabla
private List<String> getAllTables() {
List<String> tableNames = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
Map<String, ClassMetadata> map = (Map<String, ClassMetadata>) sessionFactory.getAllClassMetadata();
for(String entityName : map.keySet()){
SessionFactoryImpl sfImpl = (SessionFactoryImpl) sessionFactory;
String tableName = ((AbstractEntityPersister)sfImpl.getEntityPersister(entityName)).getTableName();
tableNames.add(tableName);
}
return tableNames;
}
1
Puede probar el uso de consultas sql nativas.
session.createSQLQuery("SELECT * FROM user_tables").list();
que da lista de tablas propiedad de loggedin de usuario o de lo contrario se puede utilizar 'all_tables' o '' dba_tables para todas las tablas de base de datos.Si db Oracle MySQL se utiliza entonces reemplazar la consulta con "VER LAS TABLAS"
Cuestiones relacionadas
- 1. ¿Cómo obtener todos los nombres de propiedades en una entidad?
- 2. java: obtener todos los nombres de variables en una clase
- 3. ¿Cómo obtener todos los nombres de tabla de una base de datos?
- 4. Obtener una lista de todos los nombres de tabla desde la primavera SimpleJdbcTemplate
- 5. jqgrid obtener todos los nombres de columna de grillas
- 6. ¿Cómo obtener todos los nombres de clase en un espacio de nombres en Ruby?
- 7. LINQ: Obtener nombres de columna de tabla
- 8. Obtenga todos los nombres de tabla en una aplicación de Django
- 9. Para obtener los detalles de la tabla
- 10. ¿Cómo obtener los nombres de los archivos?
- 11. SQLite, ¿cómo obtener todos los nombres de tablas en la base de datos?
- 12. cómo obtener todos los nombres de las tablas en la base de datos sqlCE?
- 13. ¿Obtiene todos los nombres de tabla de una base de datos particular mediante consulta SQL?
- 14. svn (subversion) ignoran tipos de archivos específicos en todos los subdirectorios, ¿están configurados en la raíz?
- 15. Obtener todos de la tabla Y ordenar?
- 16. Obtener todos los nombres de los archivos en el directorio usando JFileChooser?
- 17. iPhone SDK Xcode - Cómo obtener todos los nombres de archivo en los documentos dir
- 18. PHP MySQL Obtener nombres de columna Mientras iteración a través de todos los registros
- 19. Obtener nombres de columna
- 20. Mostrando todos los nombres de tabla en php desde la base de datos MySQL
- 21. SharpSVN leyó TODOS los nombres de archivo
- 22. copie todos los nombres de métodos - Intellij
- 23. jQuery obtener todos los atributos HTML
- 24. cómo obtener los nombres de las columnas de una tabla en ms access?
- 25. Expresión regular para encontrar todos los nombres de tabla en una consulta
- 26. PHP: obtener todos los nombres de los métodos de un objeto con el nombre "bla_"
- 27. C# cómo puedo obtener todos los nombres de los elementos de un archivo XML
- 28. SQL Listado de todos los nombres de columna alfabéticamente
- 29. PHP: Obtener una lista de todos los nombres de archivo incluidos en mi directorio de imágenes
- 30. Obtener lista de nombres de columna de una tabla vacía
+1 use el método "getAllClassMetadata" y obtendrá una matriz de getAllClassMetadata que puede repetir y recopilar todos los nombres de tabla –
Solo quiero mostrar obtener uno, por supuesto, puede iterar –
g también debe ser pequeño (en método getClassMetadata) –