读书人

Hibernate auto-import属性 解决有同名

发布时间: 2012-08-21 13:00:22 作者: rapoo

Hibernate auto-import属性 解决有同名实体的时候
auto-import是什么意思呢?

我们经常会写这样一个HQL语句:

当你的系统中确实要需要两个同名的实体时

当你的系统中确实要需要两个同名的实体时,我们需要做两件事:

    将这两个同名的实体的映射文件都要设置为auto-import 所有关于这两个实体的HQL,都需要明确指定其全限定名(如org.mysoa.security.model.User)

有人要问了,只要你做了第二条就够了呀,只要你保证所有的HQL都写了全限定名,那么hibernate解析就不会出错,系统应该是可以运行的。

其实不然。hibernate怎么知道你所有的HQL都写了全限定名?事实上,hibernate在系统加载过程中,如果发现有两个同名的实体,但是有任何一个没有设置auto-import=false,他就会抛出异常并停止加载,他以这种方式来确保你的auto-import问题在系统加载时就暴露出来,而不是延迟到真正执行一个有问题的HQL时才抛出问题。

转自 http://casheen.iteye.com/blog/469140。 仅用以收藏,忘作者体谅。

读书人网 >软件架构设计

热点推荐