81,122
社区成员




<bean id="hibernateUtilTarget" class="com.antbee.j2eemodel.util.HibernateUtil">
<property name="sessionFactory">
<ref local="mssqlSessionFactory" />
</property>
</bean>
<bean id="hibernateUtil" parent="BaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="target">
<ref local="hibernateUtilTarget" />
</property>
</bean>
<!--配置基础事务-->
<bean id="BaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager">
<ref bean="mssqltransactionManager" />
</property>
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<bean id="UserDAO" class="dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="serviceTarget" class="service.Service" singleton="false">
<property name="userDao">
<ref bean="UserDAO" />
</property>
</bean>
<bean id="userInfoPage" class="page.UserInfoPage" >
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
<bean id="service"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="target"><ref local="serviceTarget"/></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
public class HibernateUtil extends HibernateDaoSupport ...{
//用法:instance = getHibernateTemplate().find("from FxjlbVO");
// super.initialize(instance, "getFxjlbChjs");
public void initialize(Object object, String methodName)
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
String[] methodArray = methodName.split("\.");
Method method = null;
Object initializeObject = object;
if (methodArray.length == 1) ...{
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
method = object.getClass()
.getMethod(methodArray[0], new Class[] ...{});
initializeObject = method.invoke(initializeObject, new Object[] ...{});
this.getHibernateTemplate().initialize(initializeObject);
} else ...{
for (int i = 0; i < methodArray.length; i++) ...{
method = initializeObject.getClass().getMethod(methodArray[i],
new Class[] ...{});
initializeObject = method.invoke(initializeObject,
new Object[] ...{});
}
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
this.getHibernateTemplate().initialize(initializeObject);
}
}
public void initialize(Object object, String methodName[])
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
for (int i = 0; i < methodName.length; i++) ...{
String[] methodArray = methodName[i].split("\.");
Method method = null;
Object initializeObject = object;
if (methodArray.length == 1) ...{
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
method = object.getClass().getMethod(methodArray[0],
new Class[] ...{});
initializeObject = method.invoke(initializeObject,
new Object[] ...{});
//等价于:initializeObject=PropertyUtils.getProperty(initializeObject,methodArray[0]);
this.getHibernateTemplate().initialize(initializeObject);
} else ...{
for (int j = 0; j < methodArray.length; j++) ...{
method = initializeObject.getClass().getMethod(
methodArray[j], new Class[] ...{});
initializeObject = method.invoke(initializeObject,
new Object[] ...{});
}
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
this.getHibernateTemplate().initialize(initializeObject);
}
}
}
// fInitializeFields是集合合,不是方法名
//instance = getHibernateTemplate().find("from FxjlbVO");
// HashSet aa=new HashSet();
// aa.add("fxjlbChjs");
// super.initialize(instance, aa);
public void initialize(Object object, HashSet fInitializeFields)
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
String[] methodName = new String[fInitializeFields.size()];
methodName = (String[]) fInitializeFields.toArray(methodName);
for (int i = 0; i < methodName.length; i++) ...{
String[] methodArray = methodName[i].split("\.");
Method method = null;
Object initializeObject = object;
if (methodArray.length == 1) ...{
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
initializeObject=PropertyUtils.getProperty(initializeObject,methodArray[0]);
this.getHibernateTemplate().initialize(initializeObject);
} else ...{
for (int j = 0; j < methodArray.length; j++) ...{
initializeObject=PropertyUtils.getProperty(initializeObject,methodArray[0]);
}
this.getHibernateTemplate().lock(initializeObject,
org.hibernate.LockMode.NONE);
this.getHibernateTemplate().initialize(initializeObject);
}
}
}
public void initialize(Collection collection, HashSet fInitializeFields)
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
for (Iterator i = collection.iterator(); i.hasNext();) ...{
Object object = i.next();
this.initialize(object, fInitializeFields);
}
}
public void initialize(Object object) throws SecurityException,
NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException ...{
this.getHibernateTemplate().lock(object, org.hibernate.LockMode.NONE);
this.getHibernateTemplate().initialize(object);
}
public void initialize(Collection collection, String methodName[])
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
for (Iterator i = collection.iterator();i.hasNext(); ) ...{
Object object = i.next();
this.initialize(object, methodName);
}
}
public void initialize(Collection collection, String methodName)
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException ...{
for (Iterator i = collection.iterator();i.hasNext(); ) ...{
Object object = i.next();
this.initialize(object, methodName);
}
}
}