我想将我的实体添加到我的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()添加类。
有没有办法从数据库中的表中获取元数据?
答案 0 :(得分:0)
您可以使用普通JDBC connection来获取数据库元数据。但是这会给你表名,而不是实体名。如果您可以从表名中计算实体类名称,则可以使用Class.forName(entityClassName)
。