Hi all,My project is calling OrientDB with Spring JdbcTemplate through its JDBC Driver and @Transactional doesn't work. Actually, I have tried my other ways to control the transactions via OrientDB JDBC Driver, but all failed. Could you please help on this issue? As reading the user manual of OrientDB, it is transactional, but not via OrientDB JDBC Driver? Your support will be greatly appreciated on this problem.
SampleApplication.java
@SpringBootApplication
@EnableTransactionManagement
public class SampleApplication {
@Bean
public PlatformTransactionManager txManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
public static void main(String[] args) {
SpringApplication.run(ModuleDeviceApplication.class, args);
}
}
SampleDao.java
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class SampleDao {
@Autowired
protected JdbcTemplate jdbcTemplate;
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void saveSamples(List<Sample> samples){
for(Sample sample:samples){
String insertSql = "INSERT INTO Sample CONTENT " + JSON.toJSONString(sample);
jdbcTemplate.update(insertSql);
}
}
}
SampleController.java
@RestController
public class SampleController {
@Autowired
private SampleDao sampleDao;
@PostMapping("/samples/add")
public void createSamples(@RequestBody List<Sample> samples){
sampleDao.saveSamples(samples);
}
}
Sample.java
public class Sample {
private String name;
private String status;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
application.yml
server:
port: 2266
spring:
application:
name: module-device
datasource:
url: jdbc:orient:remote:localhost/GratefulDeadConcerts
driver-class-name: com.orientechnologies.orient.jdbc.OrientJdbcDriver
username: admin
password: admin
tomcat:
initial-size: 10
min-idle: 5
max-idle: 15
max-wait: 10000
time-between-eviction-runs-millis: 18800
jdbc-interceptors: ConnectionState;SlowQueryReport(threshold=0)