Я хочу создать табличное пространство в postgresql на лету, используя Spring Data JPA.Для этого я использовал собственный запрос из EntityManager:
@Service
public class DatabaseService {
@Autowired
EntityManager entityManager;
@Transactional
public void createTableSpace(String name, String path) {
String query = "CREATE TABLESPACE "
+ name + " "
+ "OWNER postgres"
+ " LOCATION" + " '" + path + "'";
Query q = entityManager.createNativeQuery(query);
q.executeUpdate();
}
}
. После выполнения приведенного выше кода я получаю эту ошибку:
Caused by: org.postgresql.util.PSQLException: ERROR: CREATE TABLESPACE cannot run inside a transaction block
Итак, я удалил @Transactional из createTableSpaceфункция;После повторного выполнения кода я получаю еще одну ошибку:
Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query
Итак, как я могу справиться с этой ситуацией?