【发布时间】:2014-12-17 13:27:24
【问题描述】:
如果这是一个太基本的问题,请原谅我!
我也不希望有免费的午餐,也不想给人留下希望别人做我的功课的印象
我在谷歌上搜索并阅读了关于 SO 的详细信息,但我对此感到非常困惑
这是我的工作 我只需要简单地进行搜索并从数据库中返回结果
我们正在使用 weblogic,因此是一个托管环境,它为我提供了连接
我们已经像这样配置了会话工厂详细信息:
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">MYDS</property>
<property name="show_sql">true</property>
<property name="default_schema">CLIENT1SCHEMA</property>
</session-factory>
</hibernate-configuration>
在我的 Spring 应用程序上下文中 - 定义了 sessionFactory 和 TransactionManager,然后将会话工厂注入我的 DAO
<bean id="sessionFactoryX" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:abc.hibernate.cfg.xml" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactoryX" />
</bean>
<bean id="myCustomDao" class="com.xyz.MyCustomDao" lazy-init="true">
<property name="criteriaConverter" ref="criteriaConverter" />
<property name="sessionFactory" ref="sessionFactoryX" />
</bean>
现在在我的 dao 中 - 我只是想做一个搜索 - 所以这是我已经实现的:
public List<T> findAll(final HashMap param) {
List<T> listData = null;
Criteria subSelectCriteria =null;
try {
Session session=getSessionFactory().getCurrentSession();
subSelectCriteria =session.createCriteria(getType());
} catch (HibernateException e) {
e.printStackTrace();
}
boolean isDistinctQuery=false;
subSelectCriteria.setFirstResult(0);
subSelectCriteria.setMaxResults(100);
List inObjList = subSelectCriteria.list();
if(!inObjList.isEmpty()){
listData = inObjList;
}
return listData;
}
这一切都很好,并且在遇到许多与事务管理相关的问题后达到了上述配置 - 我已在此处发布: Transaction Management using Hibernate with weblogic
现在这是我的基本问题: 我没有明确编写的事务管理代码: 既不是通过 AOP 在我的服务层中也不是 @Transactional
它似乎只需注入:
org.springframework.orm.hibernate4.HibernateTransactionManager
那么这是有效的事务管理吗?
我正在尝试实现多租户 - 按照之前的线程 - 但这不是我的问题
谢谢
【问题讨论】:
标签: hibernate transactions spring-transactions