Spring3 통합 Hibernate4
6394 단어 Spring3Hibernate4통합
참고 사항:
1.jar 패키지 참고 프로젝트에 가져오려면 jaxen-1.1-beta-6.jar와commons-logging-api.jar,
commons-logging-1.1.1.jar는 비교적 특수하다
2. Hibernate4에서 Dao 구성 요소는 HibernateDao Support를 계승할 필요가 없습니다.
Dao 어셈블리에서sessionFactory를 직접 주입할 수 있습니다.그리고 호출
//Session session = sessionFactory.getCurrentSession();
Session session = sessionFactory.openSession();
openSession () 방법, getCurrentSession () 이 아닌 것을 주의하십시오.방법.
그렇지 않으면 이상 보고:java.lang.NoSuchMethodError 예외
참조:http://www.cnblogs.com/lihuiyy/archive/2013/03/21/2972641.html
(hibernate4와spring3 통합 주의사항 그렇지 않으면 java.lang.NoSuchMethodError 이상)
세션 팩토리를 얻으면 new 하나 (또는 Spring에서 하나 주입) HIbernate Template를 사용할 수 있습니다.
3. hibernate 속성을 설정할 때
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
위의 형식에 주의하십시오. 줄마다 속성이 있습니다.
hibernate.hbm2ddl.auto=update는 업데이트로 설정해야 하고,create로 설정해야 합니다. (표가 존재하지 않습니다.)무슨 영문인지 모르겠다.
여기에는 데이터베이스 테이블을 먼저 준비한 다음에 업데이트로 설정할 수 있습니다.
4. hibernate 4.0에 CacheProvider 클래스가 없습니다.
CacheProvider는hibernate 3.3에서 사용을 권장하지 않았는데 이번에는 4.0에서 삭제한 것에 불과하다.
세션 팩토리의 Bean 구성은 다음과 같습니다.
class 속성 중의hibernate4를 주의하십시오
참조:http://blog.csdn.net/geekjoker/article/details/7899890
5.load를 호출할 때 id의 유형을 설정해야 합니다.예를 들어 id가 int형이라면 지구화 클래스를 정의할 때도 int로 정의해야 한다.
6. Spring 구성 파일
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
>
<!-- 1. datasource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- -->
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- URL -->
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/hibernate?useunicode=true&characterEncoding=utf8"/>
<!-- -->
<property name="user" value="root"/>
<!-- -->
<property name="password" value="root"/>
<!-- -->
<property name="maxPoolSize" value="40"/>
<!-- -->
<property name="minPoolSize" value="1"/>
<!-- -->
<property name="initialPoolSize" value="1"/>
<!-- -->
<property name="maxIdleTime" value="20"/>
</bean>
<!-- 2. sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!--dataSource -->
<property name="dataSource" ref="dataSource"/>
<!-- -->
<property name="mappingResources">
<list>
<value>com/test/hibernate/mapping/News.hbm.xml</value>
</list>
</property>
<!-- Hibernate -->
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
<!-- 3. HibernateTemplate, -->
<bean id="hibernateTemplete" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 4. Dao Bean, Dao HibernateDaoSupport, HibernateTemplate -->
<bean id="newsDao" class="test.hibernate.pojo.dao.NewsDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 5. service Bean, Dao Bean -->
<bean id="newsService" class="test.hibernate.pojo.dao.service.NewsService">
<property name="newsDao" ref="newsDao"></property>
</bean>
</beans>