就像在標題。我需要查詢數據庫上的特定函數,它將定義分配給事務的幾個值。如果可能的話,我想讓它成爲與特定配置文件連接的全局配置(有幾個請求我不想加載該功能)。如何在事務打開後立即查詢SQL?
項目建立在Java SE 1.7,Spring Boot 1.1.7上,並與PostgreSQL數據庫連接。
請求建立在3層,SomeClassController(Controller),SomeClassService(Service),SomeClassDB(Repository)上。在SomeClassDB上,它使用來自Spring的JdbcTemplate與數據庫連接並執行CRUD操作。在我想要查詢某個功能的任何操作之前。正如我提到的那樣,我不想要一個能夠完成這項工作的方法 - 我需要像TransactionManager上的全局配置一樣的東西?
也許我應該用beforeCommit方法使用TransactionSynchronization?但我不知道如何在全球範圍內使用它。
EDIT1:我可以,但我不想什麼):
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
@Service
public class SessionService {
Boolean flag;
public SessionService(){
flag=false;
}
@Value("${appVersion}") String appVersion;
@Value("${appArtifactId}") String appArtifactId;
public void addSession(){
if(!flag){
jdbcTemplate.execute("SELECT add_ses('"+appArtifactId+"','"+appVersion+")");
flag=true;
}
}
public void deleteSession(){
jdbcTemplate.execute("SELECT del_ses()");
}
}
現在我可以叫上開始和第二層類的結束這兩種方法有@Autowired此類。但我真的不想這樣做。有一天,有一天會忘記它傳播第二層SomeClassService類,我想避免它。
我希望能讓你更接近我的問題。