hibernate中重新加载映射文件为什么新文件找不到?

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:22:18
需求是这样的,我的系统在使用过程中,会有其它程序生成表,并自动生成配置文件放到我的mapping下,把路径添加到hibernate.cfg.xml中,现在的问题是,在服务器不重启的情况下我重新加载了所有的映射文件,具体操作是这样的
_defaultSessionFactory = new Configuration().configure()
.buildSessionFactory();
这时打印出来的信息已经表明对影射文件重新进行了加载,可是却没有加再新加入进来的映射文件,试过N遍依然如此,百思不得其解,望高手相助!
沙发位置的兄弟说的貌似很笼统,没有看明白,我已经得到了hibernate.cfg.xml文件的修改信息,重新加载的时候没有把新加入进来的配置文件加进来,个人怀疑是缓存的问题,但不知道该怎么清.
地板位置的兄弟
1 不是每个表的映射都必须要有.class哦
2 如果重启服务器就不需要费这么大劲了,全都是动态生成的,我都不知道什么时间会有新表产生,怎么去重启啊?

请高手们继续,先谢了

configuration.configure().buildSessionFactory()是加载文档,也就是hibernate自动生成的可编辑文档,你可以到你的项目里去看看,有一些自动加载的文档,文件中还有注释,试一下吧;

1.hibernate的映射机制应该是有一个*.hbm.xml和一个*.class文件,你确定两个文件你都生成了吗?有可能是你生成了一个hbm文件和一个java文件。而你没有去把java文件编译成class文件。

2.你调用方法是可以重新加载,但对于class文件来讲,就算你服务器不重启,你的项目也要重新启动一次吧(tomcat服务器),不然你的服务器怎么知道你新增了一个class文件。

不要class文件?
<class
name="com.cc502.ccmis.hibernate.pojo.MisTblClientData"
table="MIS_TBL_CLIENT_DATA"
lazy="false"
>
在hbm.xml中的配置中有一个name需要你来填,没class你往里填什么呀?

Hibernate得配置文件都是在服务器启动时加载内存的。动态很够呛吧。