Spring 数据库连接边界与事务边界
我的问题是DB连接边界与事务边界 我不是在问,把@transactional注释放在哪里。我需要知道 甚至对已执行的@transactional方法进行编码,之后也使用db连接/锁定或 不 故事Spring 数据库连接边界与事务边界,spring,jpa,transactions,spring-transactions,Spring,Jpa,Transactions,Spring Transactions,我的问题是DB连接边界与事务边界 我不是在问,把@transactional注释放在哪里。我需要知道 甚至对已执行的@transactional方法进行编码,之后也使用db连接/锁定或 不 故事 我面临的一个问题是,我的一个项目消耗了大量的数据库连接。当网络流量很高时,它们不会发布。 因此,我需要了解事务性注释使用的最佳实践。 此外,我还需要详细说明与@Transactional|的锁/DB连接 什么是数据库连接?什么是锁?两者都平等吗? 我问的是锁获取的问题。锁何时获取,何时释放 我有两种
我面临的一个问题是,我的一个项目消耗了大量的数据库连接。当网络流量很高时,它们不会发布。 因此,我需要了解事务性注释使用的最佳实践。 此外,我还需要详细说明与@Transactional|的锁/DB连接 什么是数据库连接?什么是锁?两者都平等吗? 我问的是锁获取的问题。锁何时获取,何时释放 我有两种方法从事务方法返回数据
- 保存并返回实体
- 保存并返回DTO
@Service
public class QuoteService {
@Transactional
public SampleClass4 saveAllGetSampleClass4(Long quoteId, Long userId) {
SampleClass1 sampleClass1 = new SampleClass1();
sampleClass1.setQuoteId(quoteId);
sampleRepository1.saveAndFlush(sampleClass1);
SampleClass2 sampleClass2 = new SampleClass2();
sampleClass2.setQuoteId(quoteId);
sampleRepository2.saveAndFlush(sampleClass2);
SampleClass3 sampleClass3 = new SampleClass3();
sampleClass3.setQuoteId(quoteId);
sampleRepository3.saveAndFlush(sampleClass3);
SampleClass4 sampleClass4 = new SampleClass4();
sampleClass4.setQuoteId(quoteId);
sampleClass4=sampleRepository4.saveAndFlush(sampleClass4);
}
@Transactional
public SampleClass4DTO saveAllGetSampleClass4DTO(Long quoteId, Long userId) {
SampleClass1 sampleClass1 = new SampleClass1();
sampleClass1.setQuoteId(quoteId);
sampleRepository1.saveAndFlush(sampleClass1);
SampleClass2 sampleClass2 = new SampleClass2();
sampleClass2.setQuoteId(quoteId);
sampleRepository2.saveAndFlush(sampleClass2);
SampleClass3 sampleClass3 = new SampleClass3();
sampleClass3.setQuoteId(quoteId);
sampleRepository3.saveAndFlush(sampleClass3);
SampleClass4 sampleClass4 = new SampleClass4();
sampleClass4.setQuoteId(quoteId);
sampleClass4=sampleRepository4.saveAndFlush(sampleClass4);
SampleClass4DTO dto=SampleClass4DTO.valueOf(sampleClass4);
return dto;
}
}
这回答了你的问题吗@mohammedkhan不,我不是在问,把事务注释放在哪里。我需要知道执行的事务方法的代码,然后还要知道它是否使用db连接/锁?
@Service
public class QuoteService {
@Transactional
public SampleClass4 saveAllGetSampleClass4(Long quoteId, Long userId) {
SampleClass1 sampleClass1 = new SampleClass1();
sampleClass1.setQuoteId(quoteId);
sampleRepository1.saveAndFlush(sampleClass1);
SampleClass2 sampleClass2 = new SampleClass2();
sampleClass2.setQuoteId(quoteId);
sampleRepository2.saveAndFlush(sampleClass2);
SampleClass3 sampleClass3 = new SampleClass3();
sampleClass3.setQuoteId(quoteId);
sampleRepository3.saveAndFlush(sampleClass3);
SampleClass4 sampleClass4 = new SampleClass4();
sampleClass4.setQuoteId(quoteId);
sampleClass4=sampleRepository4.saveAndFlush(sampleClass4);
}
@Transactional
public SampleClass4DTO saveAllGetSampleClass4DTO(Long quoteId, Long userId) {
SampleClass1 sampleClass1 = new SampleClass1();
sampleClass1.setQuoteId(quoteId);
sampleRepository1.saveAndFlush(sampleClass1);
SampleClass2 sampleClass2 = new SampleClass2();
sampleClass2.setQuoteId(quoteId);
sampleRepository2.saveAndFlush(sampleClass2);
SampleClass3 sampleClass3 = new SampleClass3();
sampleClass3.setQuoteId(quoteId);
sampleRepository3.saveAndFlush(sampleClass3);
SampleClass4 sampleClass4 = new SampleClass4();
sampleClass4.setQuoteId(quoteId);
sampleClass4=sampleRepository4.saveAndFlush(sampleClass4);
SampleClass4DTO dto=SampleClass4DTO.valueOf(sampleClass4);
return dto;
}
}