Hibernate中怎么得到表名及字段名?
hibernate中,实体是用anntation方式进行映射的,怎么样能够得到表名?
意思就是:现在只知道实体类的名字,比如说:com.test.User。我要怎么得到User这个实体对应表名,及其所有的字段名?
分不多,感谢高人解答
[最优解释]
重新new一个AnnotationConfiguration当然是不可行,因为只在原来的cfg中才会有记录哪些类已经映射上去了。
如果你重新new了一个AnnotationConfiguration,也可以调用方法cfg.addAnnotatedClass(clz),这样再getClassMappings就可以了
[其他解释]
保留原来的AnnotationConfiguration cfg对象
调用cfg.getClassMappings(),循环这个Iterator
RootClass clz = (RootClass) it.next();
clz.getTable().getName()
这个就是表名了。
[其他解释]
这样是不可以的,除非你自己解析*.hbm.xml这样里面就有了。但是如果不想解析就只有创建一个表,将这两个联系起来才能得到,再或者就是将表名和类名,字段名和类的属性名设置成一模一样的。
否则无法实现
[其他解释]
字段名就是clz.getTable().getColumnIterator()
Column col = colIt.next();
这样就可以
[其他解释]
都得到了,还要hbm.xml干啥,本来hiber就是不让你关心数据库方便的地东西,专心搞对象(谈恋爱)
[其他解释]
应该可能在*.hbm.xml里,获得吧,如果你想得到可能要用DOM4J来获得
[其他解释]
User.class.getAnnotations()
这个方法可以把类里面的注解都拿出来
LZ你可以拿出来以后看看有没有你感兴趣的信息吧
[其他解释]
首先谢谢楼上的三位朋友。
可你们都看错题目了。我现在是用annotation的方式映射的,不是xml的方式。
[其他解释]