Han*_*nes 7 spring hibernate spring-orm hibernate-5
我正在尝试将Hibernate 5(5.2.11)与Spring ORM一起使用.
在以下教程中,我提出了以下配置:
春豆
<bean id="sessionFactorySettings" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
<prop key="hibernate.connection.driver_class">org.h2.Driver</prop>
<prop key="hibernate.connection.url">jdbc:h2:~/.dummy/settings</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>/hibernate.cfg.xml</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
Hibernate(hibernate.cfg.xml)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping class="entity.Settings"/>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
这种配置导致了org.hibernate.UnknownEntityTypeException: Unable to locate persister: entity.Settings.
但是,一旦我全部移动
<prop key="hibernate.xxx">..</prob>
Run Code Online (Sandbox Code Playgroud)
将属性转换为hibernate.cfg.xml并将Spring配置更改为
<bean id="sessionFactorySettings" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="configLocation" value="/hibernate.cfg.xml"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
一切正常.
知道我做错了吗?
PS:依赖关系:
dependencies {
compile 'ch.qos.logback:logback-classic:1.2.3'
compile 'org.springframework:spring-context:4.3.11.RELEASE'
compile 'org.springframework:spring-jdbc:4.3.11.RELEASE'
compile 'org.springframework:spring-orm:4.3.11.RELEASE'
compile 'org.hibernate:hibernate-core:5.2.11.Final'
compile 'org.hibernate:hibernate-java8:5.2.11.Final'
compile 'org.apache.commons:commons-dbcp2:2.1.1'
compile 'com.h2database:h2:1.4.196'
}
Run Code Online (Sandbox Code Playgroud)
我在使用hibernate和Spring的时候通常会使用这样的配置:
<bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="hibernateDatasource" />
<!-- HERE YOU HAVE TO PUT THE PACKAGE
WHERE YOUR ENTITY CLASS ARE LOCATED
(I mean classes annotated with @Entity annotation -->
<property name="packagesToScan" value="hibernate.models" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.props.db.dialect}
</prop>
<prop key="hibernate.show_sql">
${hibernate.props.db.show.sql}
</prop>
<prop key="hibernate.generate_statistics">
${hibernate.props.db.generate.statistics}
</prop>
<prop key="hibernate.format_sql">
${hibernate.props.db.format.sql}
</prop>
<prop key="hibernate.hbm2ddl.auto">
${hibernate.props.db.ddl.instr}
</prop>
<prop key="hibernate.cache.use_second_level_cache">${hibernate.props.db.use.cache}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.props.db.use.query.cache}</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
</prop>
<prop key="net.sf.ehcache.configurationResourceName">hibernateEhCacheCfg.xml</prop>
<prop key="hibernate.jdbc.batch_size">${hibernate.props.db.jdbc.batch.size}</prop>
<prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
然后,我的所有属性都是使用属性文件加载的
我希望它有用
安吉洛
| 归档时间: |
|
| 查看次数: |
4480 次 |
| 最近记录: |