我的基本要求是让多个sessionFactory对象指向两个不同的模式(这是逻辑分组,每个逻辑组中都有多个模式),所以这里是配置:
eventHandler.createEvent("Change X Value", 800, () -> x.set(5));
现在我创建了具有保存方法的Dao类
<tx:annotation-driven transaction-manager="transactionManager1" />
<transactionManager1>
<sessionFactory1>
</transactionManager1>
<tx:annotation-driven transaction-manager="transactionManager2" />
<transactionManager2>
<sessionFactory2>
</transactionManager2>
这段代码工作正常,但我的问题是,@ Transactional注释会选择哪个事务管理器?
还是有办法在日志中打印?
答案 0 :(得分:0)
yuo可以通过在注释中传递其名称来为您指定transacion管理器 例如:
@Transactional(value="transactionManager2")
public void save(Object){
sessionFactory2.getCurrentSession().save(object);
}
找到更多详细信息
我希望它有用
安吉洛
答案 1 :(得分:0)
如果您发布的(伪)配置也是您在配置中定义它的顺序,则始终使用 def User.digest(string)
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine.cost
BCrypt::Password.create(string, cost: cost)
end
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.email = auth.info.email
user.oauth_token = auth.credentials.token
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save!
end
end
end
。
定义多个transactionManager2
元素没有用处。使用此元素,您可以指示要使用注释驱动的事务,并希望使用给定的<tx:annotation-driven />
作为默认事务管理器。
在您的情况下,您已定义2,最后一个将是有效的。
当使用多个事务管理器时,您必须在transaction-manager
注释中指定哪个事务管理器用于该特定事务方法。
因此,您需要指定@Transactional
或@Transactional("transactionManager1")
,具体取决于您认为哪一个是默认值。