如何在我的表注释到配置之前获取表的元数据?

时间:2011-05-06 07:32:24

标签: java hibernate

我想将我的实体添加到我的SessionFactory中,但是当我启动该程序时我不知道这些类。

在我将Hibernate连接到数据库后,我希望从数据库中获取元数据并使用它们来查找我想要添加的类。

这是我获取元数据的方式,但只有在hibernate.cfg.xml中添加类或在创建Sessionfactory之前在我的HibernateUtil中添加静态时它才有效。

        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 :(得分:0)

您可以使用普通JDBC connection来获取数据库元数据。但是这会给你表名,而不是实体名。如果您可以从表名中计算实体类名称,则可以使用Class.forName(entityClassName)