hibernate中,对对象关系的映射处理估计是最让人迷惑和头疼的,特别是cascade和inverse属性的使用,不知已经杀死了我多少个脑细胞了,好记性永远比不上烂笔头,为了能节省自己的脑细胞,降低猝死的出现概率,暂且在此记录一下自己的学习内容,以便日后查阅:

实体对象关系说明:

    1、用户类(user)->tb_pms_user

    2、用户组(group)->tb_pms_group

   其中,一个用户组可以包含多个用户,一个用户可以加入多个用户组,多对多关系。

Spring的配置文件:

  1 <?xml version="1.0" encoding="UTF-8"?>  
  2     <beans xmlns="http://www.springframework.org/schema/beans"  
  3            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4            xmlns:aop="http://www.springframework.org/schema/aop"  
  5           xmlns:tx="http://www.springframework.org/schema/tx"  
  6            xmlns:jee="http://www.springframework.org/schema/jee"  
  7            xsi:schemaLocation="  
  8            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
  9           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd  
 10           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  
 11           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">  
 12           
 13           <bean id="propertyConfigurer"  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
 14            <property name="locations">  
 15             <list>    
 16                <value>/WEB-INF/deploy/pms/app-config/jdbc.properties</value>   
 17              </list> 
 18               </property> 
 19             </bean>
 20           
 21           
 22           <!-- 配置数据原 -->
 23             <bean id="dataSource"
 24                class="org.apache.commons.dbcp.BasicDataSource">
 25             <property name="driverClassName"
 26                 value="com.mysql.jdbc.Driver">
 27             </property>
 28             <property name="url" value="jdbc:mysql://localhost:3306/pms"></property>
 29             <property name="username" value="root"></property>
 30             <property name="password" value="1qaz!QAZ"></property>
 31            </bean>
 32        
 33        <!-- 配置session工厂 -->
 34        <bean id="sessionFactory"
 35           class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 36             <property name="dataSource">
 37             <ref bean="dataSource" />
 38              </property>
 39            <property name="mappingResources">
 40             <list>
 41               <value>com/pms/entity/TbPmsGroup.hbm.xml</value> 
 42               <value>com/pms/entity/TbPmsUser.hbm.xml</value>             
 43             </list>
 44          </property>
 45          <property name="hibernateProperties">
 46             <props>
 47                <prop key="hibernate.dialect">
 48                      org.hibernate.dialect.MySQLDialect
 49                </prop>
 50                <prop key="hibernate.show_sql">true</prop>
 51             </props>
 52          </property>
 53         </bean>
 54      <!-- spring jdbcTemplate -->     
 55     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">    
 56         <property name="dataSource" ref="dataSource"></property>    
 57     </bean>
 58     
 59     <!-- 事务管理器 -->
 60     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 61       <property name="sessionFactory">
 62            <ref local="sessionFactory" />
 63       </property>
 64     </bean>
 65     <!-- 事务代理拦截器的配置 -->
 66     <bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
 67       <property name="transactionManager">
 68            <ref bean="transactionManager" />
 69       </property>
 70     <property name="transactionAttributes">
 71     <props>
 72     <prop key="insert*">PROPAGATION_REQUIRED</prop>
 73     <prop key="update*">PROPAGATION_REQUIRED</prop>
 74     <prop key="delete*">PROPAGATION_REQUIRED</prop>
 75     <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
 76     </props>
 77     </property>
 78     </bean>
 79     
 80     <!-- 日志bean 
 81     <bean />
 82     
 83     
 84     <aop:config>
 85       <aop:aspect >
 86         <aop:pointcut />
 87         <aop:after method="addLog" pointcut-ref="servicePointCut"/>
 88       </aop:aspect>
 89     </aop:config>
 90     -->
 91     <bean id="baseDao" class="com.pms.base.BaseDao">
 92        <property name="sessionFactory">
 93          <ref bean="sessionFactory"/>
 94       </property>
 95       <property name="jdbcTemplate">
 96          <ref bean="jdbcTemplate"/>
 97       </property>
 98     </bean>
 99     
100     
101     
102     <bean id="userDao" class="com.pms.dao.impl.TbPmsUserDaoImpl" parent="baseDao">        
103     </bean>
104     
105     <bean id="groupDao" class="com.pms.dao.impl.TbPmsGroupDaoImpl" parent="baseDao">        
106     </bean>
107     
108     
109     <bean id="userService" class="com.pms.service.impl.UserServiceImpl">
110       <property name="userDao">
111          <ref bean="userDao"/>
112       </property>
113     </bean>
114     
115     <bean id="groupService" class="com.pms.service.impl.GroupServiceImpl">
116       <property name="groupDao">
117          <ref bean="groupDao"/>
118       </property>
119     </bean>
120          
121 </beans>  
View Code

相关文章: