一直在使用公司的BDF,从来没有留意过加载的具体细节,在一次做培训的时候,因为没有使用BDF,Hibernate映射只能一个一个的添加不支持我常用的通配符,文件少了,没什么,要是文件多了,多麻烦呀,才让我正式的面对这个问题。我们BDF的实现方式比较复杂,之后单独写出来。
常用的映射加载方式有这么几种mappingResources、mappingLocations、mappingDirectoryLocations、mappingJarLocations。
mappingResources: 指定classpath下具体映射文件名也可以是一个List的具体映射文件名。
1 2 3 4 5 6 7 8 9 10 11 12 |
<!--具体映射文件名--> <property name="mappingResources"> <value>org/xobo/domain/users.hbm.xml</value> </property> <property name="mappingResources" value="org/xobo/users.hbm.xml"/> <!--或者是一个list--> <property name="mappingResources"> <list> <value>org/xobo/domain/users.hbm.xml</value> <value>org/xobo/domain/dept.hbm.xml</value> </list> </property> |
mappingLocations:可以指定任何文件路径,并且可以指定前缀:classpath、file等,也可以用通配符指定。
1 2 3 4 5 6 7 8 9 |
<property name="mappingLocations"> <value>/WEB-INF/users.hbm.xml</value> </property> <property name="mappingLocations"> <value>classpath:/org/xobo/domain/users.hbm.xml </value> </property> <property name="mappingLocations"> <value>classpath:/org/xobo/domain/*.hbm.xml</value> </property> |
mappingDirectoryLocations:指定映射的文件路径
1 2 3 4 5 6 7 8 9 10 |
<property name="mappingDirectoryLocations"> <list> <value>WEB-INF/HibernateMappings</value> </list> </property> <!--也可以通过classpath来指出--> <property name="mappingDirectoryLocations"> <list> <value>classpath:/XXX/package/</value> </list> </property> |
由此可知mappingLocations、mappingDirectoryLocations都可以轻松的满足我的需求,不知道我从网上搜索到的教程为什么会使用mappingResources。
最新评论
昨天发现的,然后在application.yml中配置“hibernate.dialect.storage_engine=innodb”。但是自动生成的表还是不会设置为innoDB,看了底层源码。这个配置也是没有加载到的 原来是要在hibernate.properties中加这个配置。感谢
将virtualbox虚拟网卡驱动卸载了,然后就会好了,但是这个时候virtualbox虚拟网络就无法使用了,重新安装一下virtualbox就好了
我也发现了这个注释:注释“Use "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.” ----- 坑啊。。。。。。。
卸载蓝牙驱动·在设备里面找,一般在网卡那里 卸载重启就行了
高