Как я могу получить метаданные моих таблиц до того, как они будут добавлены в мою конфигурацию? - PullRequest
0 голосов
/ 06 мая 2011

Я хочу добавить свои сущности в мою SessionFactory, но я не знаю классов, когда я запускаю программу.

После подключения Hibernate к базе данных я хочу получить метаданные из базы данных и использовать их, например, для поиска классов, которые я хочу добавить.

Это способ получения метаданных, но он работает только в том случае, если добавить классы в hibernate.cfg.xml или добавить их статически в мой HibernateUtil перед созданием Sessionfactory.

        Map metaa = qCon.getSessionFactory().getAllClassMetadata();

        Set set = metaa.entrySet();

        Iterator it = set.iterator();

        while (it.hasNext())
        {
          Map.Entry m = (Map.Entry) it.next();
              // Do something with the values...
        }

Теперь я хочу добавить классы во время выполнения с помощью addAnnotatedClass ().

Есть ли способ получить метаданные из таблиц в базе данных?

1 Ответ

0 голосов
/ 06 мая 2011

Вы можете использовать обычное соединение JDBC для получения метаданных базы данных. Но это даст вам имена таблиц, а не имена сущностей. Если вы можете вычислить имя класса сущности из имени таблицы, тогда вы можете использовать Class.forName(entityClassName).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...