Обратитесь к django docs в непосредственно за выполнением пользовательского запроса . Укажите базу данных в вашем соединении, как показано ниже:
from django.db import connections
cursor = connections['db_alias'].cursor()
# Your code here...
И затем совершите использование
transaction.commit_unless_managed(using='db_alias')
Оказывается, я использовал неправильные параметры командной строки (я не знал, что не должен был использовать java -jar
с модульными банками). Используя правильные команды, ответ @ Holger работал, за исключением того, что набор, переданный в Configuration.resolve
, должен содержать все имена загружаемых модулей, что было достаточно легко исправить:
var path = Path.of("myjar.jar");
var cl = new URLClassLoader(new URL[]{path.toUri().toURL()});
var mf = ModuleFinder.of(path);
var cfg = Configuration.resolve(mf, List.of(ModuleLayer.boot().configuration()), mf, mf.findAll().stream().map(module -> module.descriptor().name()).collect(Collectors.toSet()));
var ml = ModuleLayer.defineModulesWithOneLoader(cfg, List.of(ModuleLayer.boot()), cl).layer();
var services = ServiceLoader.load(ml, MyService.class);
services.forEach(System.out::println);