Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 用于处理多个DB连接的会话工厂_Hibernate_Spring_Dao_Quest - Fatal编程技术网

Hibernate 用于处理多个DB连接的会话工厂

Hibernate 用于处理多个DB连接的会话工厂,hibernate,spring,dao,quest,Hibernate,Spring,Dao,Quest,我的任务是为不同的数据源创建多个会话工厂。一个数据源将用于读请求,另一个用于读写请求 我们数据库服务的每个API(DAO上的包装器)都作为事务执行。单个API可以调用具有不同读/写属性的多个DAO函数 执行此任务的最佳方式是什么?我假设不同的数据源是不同的数据库。否则,您可以将readOnly属性与@Transactional注释一起使用来管理只读事务 您可以在DAO层中注入两个单独的会话工厂来管理这些事务。或者,您可以使用AbstractRoutingDataSource。我想这个话题会对你有

我的任务是为不同的数据源创建多个会话工厂。一个数据源将用于读请求,另一个用于读写请求

我们数据库服务的每个API(DAO上的包装器)都作为事务执行。单个API可以调用具有不同读/写属性的多个DAO函数


执行此任务的最佳方式是什么?

我假设不同的数据源是不同的数据库。否则,您可以将readOnly属性与@Transactional注释一起使用来管理只读事务


您可以在DAO层中注入两个单独的会话工厂来管理这些事务。或者,您可以使用AbstractRoutingDataSource。我想这个话题会对你有所帮助。是的,不同的数据源是不同的数据库。然后您可以注入不同的SessionFactory。如果您有不同的事务管理器,那么可以使用@Transactional(“TxManagerName”)。您可以使用AbstractRoutingDataSource将这一切连接起来。但是,您是否打算在同一方法内跨不同事务性数据源工作呢?即,如果一个数据库回滚会影响另一个数据集,请考虑使用XA数据源。这非常有用。您能告诉我从一个API连接到多个DBs的优缺点吗?除此之外,这可能很幼稚,但在春季使用全局事务(XA数据源)的方式是什么?@tyro-请向上投票(单击向上箭头)/如果您对答案感到满意,请勾选勾号投票向上需要15声誉:(您能回答前面的问题吗?