Hibernate中怎么得到表名及字段名?

howardhewang 2010-08-25 01:48:02
hibernate中,实体是用anntation方式进行映射的,怎么样能够得到表名?
意思就是:现在只知道实体类的名字,比如说:com.test.User。我要怎么得到User这个实体对应表名,及其所有的字段名?


分不多,感谢高人解答
...全文
475 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtljiayou 2012-12-10
  • 打赏
  • 举报
回复
楼主 你搞定没 求指导
ChDw 2010-09-01
  • 打赏
  • 举报
回复
重新new一个AnnotationConfiguration当然是不可行,因为只在原来的cfg中才会有记录哪些类已经映射上去了。

如果你重新new了一个AnnotationConfiguration,也可以调用方法cfg.addAnnotatedClass(clz),这样再getClassMappings就可以了
sunquanyi1 2010-08-31
  • 打赏
  • 举报
回复
用@Table(name="表名")试试
不知道说的合不合楼主意,小鸟飞过!!!呵呵!!
howardhewang 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 muyipan 的回复:]
hibernate有自带的数据库映射文件
[/Quote]
我是用Annotation的方式映射的,没有配置文件
muyipan 2010-08-31
  • 打赏
  • 举报
回复
hibernate有自带的数据库映射文件
howardhewang 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chdw 的回复:]
保留原来的AnnotationConfiguration cfg对象

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

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

这个就是表名了。
[/Quote]

这位朋友,不知道重新new一个AnnotationConfiguration行不行?
cfg.getClassMappings()得到的是空。我很郁闷。如果是xml方式则可以。
e9876 2010-08-25
  • 打赏
  • 举报
回复
User.class.getAnnotations()
这个方法可以把类里面的注解都拿出来
LZ你可以拿出来以后看看有没有你感兴趣的信息吧
ChDw 2010-08-25
  • 打赏
  • 举报
回复
字段名就是clz.getTable().getColumnIterator()

Column col = colIt.next();

这样就可以
howardhewang 2010-08-25
  • 打赏
  • 举报
回复
首先谢谢楼上的三位朋友。
可你们都看错题目了。我现在是用annotation的方式映射的,不是xml的方式。
ChDw 2010-08-25
  • 打赏
  • 举报
回复
保留原来的AnnotationConfiguration cfg对象

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

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

这个就是表名了。
greedsluck 2010-08-25
  • 打赏
  • 举报
回复
应该可能在*.hbm.xml里,获得吧,如果你想得到可能要用DOM4J来获得
xutao_2008_2000 2010-08-25
  • 打赏
  • 举报
回复
都得到了,还要hbm.xml干啥,本来hiber就是不让你关心数据库方便的地东西,专心搞对象(谈恋爱)
william_zheng2010 2010-08-25
  • 打赏
  • 举报
回复
这样是不可以的,除非你自己解析*.hbm.xml这样里面就有了。但是如果不想解析就只有创建一个表,将这两个联系起来才能得到,再或者就是将表名和类名,字段名和类的属性名设置成一模一样的。
否则无法实现

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧