Java 将多个dao注入到一个服务中
如果我有几个DAO要注入到一个需要在单个事务中协同工作的服务中,我该怎么做Java 将多个dao注入到一个服务中,java,hibernate,spring,Java,Hibernate,Spring,如果我有几个DAO要注入到一个需要在单个事务中协同工作的服务中,我该怎么做 @Component public class CallerClass{ @Autowired private TransactionClass1 class1; @Autowired private TransactionClass2 class2; public void saveOperation(){ try{ class1.save(); cla
@Component
public class CallerClass{
@Autowired
private TransactionClass1 class1;
@Autowired
private TransactionClass2 class2;
public void saveOperation(){
try{
class1.save();
class2.save();
}catch(Exception ex){
}
}
}
就像上面简单的代码一样。但是,该代码是缺少的您是否使用JTA?您是否自己实现事务?请提供有关您的体系结构的更多信息,以便我们做出相应的响应 编辑: 请查看此项,例如:
您使用JTA吗?您是否自己实现事务?请提供有关您的体系结构的更多信息,以便我们做出相应的响应 编辑: 请查看此项,例如:
您必须在使用第一个dao之前打开事务(例如使用
@Transactional
)
必须在使用第一个dao之前打开事务(例如使用
@Transactional
)
您只需以与通常相同的方式注入所有DAO,即使用@inject或@Autowired的setter或构造函数 然后将服务方法注释为事务性的,并在多个DAO上调用所需的操作。事务将包含其中的所有dao调用
@Transactional
public void doStuff() {
dao1.doStuff();
dao2.doStuff();
}
您只需以与通常相同的方式注入所有DAO,即使用@inject或@Autowired的setter或构造函数 然后将服务方法注释为事务性的,并在多个DAO上调用所需的操作。事务将包含其中的所有dao调用
@Transactional
public void doStuff() {
dao1.doStuff();
dao2.doStuff();
}
好的,doStuff()方法的类应该用@Component注释,对吗?是的,如果您使用自动连接来连接组件。我想我以为你是。您可能也在使用较新的@Configuration/@Bean或纯XMl。好吧,doStuff()方法的类应该用@Component注释,对吗?如果您使用自动连接来连接组件,可以。我想我以为你是。您也可能正在使用较新的@Configuration/@Bean或纯XMl。