首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate中如何得到表名及字段名

2012-12-15 
Hibernate中怎么得到表名及字段名?hibernate中,实体是用anntation方式进行映射的,怎么样能够得到表名?意思

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的方式。

[其他解释]

引用:
保留原来的AnnotationConfiguration cfg对象

调用cfg.getClassMappings(),循环这个Iterator

RootClass clz = (RootClass) it.next();
clz.getTable().getName()

这个就是表名了。


这位朋友,不知道重新new一个AnnotationConfiguration行不行?
cfg.getClassMappings()得到的是空。我很郁闷。如果是xml方式则可以。
[其他解释]
hibernate有自带的数据库映射文件
[其他解释]
引用:
hibernate有自带的数据库映射文件

我是用Annotation的方式映射的,没有配置文件
[其他解释]
用@Table(name="表名")试试
   不知道说的合不合楼主意,小鸟飞过!!!呵呵!!
[其他解释]
楼主  你搞定没 求指导

热点排行