Как использовать плагин Hibernate ORM для Minecraft в отдельной ветке - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу разработать большой плагин Minecraft, и мне нужно сохранить данные.
Созданные и удаленные экземпляры сразу попадут в БД, экземпляры с отредактированными свойствами будут обновляться в БД через регулярные промежутки времени.

Вместо этого для разработки таблиц и запросов самостоятельно, я хотел бы использовать ORM. Моя бизнес-модель будет содержать много ссылок (FK), коллекций, наследования (например, я буду использовать Одна таблица для стратегии иерархии классов ), необходимо сохранять даже те классы, которые мне не принадлежат (из Bukkit API) ) et c.

Minecraft работает в одном главном потоке, где все происходит. Если какая-то операция блокирует этот поток, у всех игроков возникнет задержка, поэтому важно запускать операции ввода-вывода в отдельном потоке.

Мой вопрос заключается в том, как запустить Hibernate в отдельном потоке. Я знаю, что в Hibernate есть прокси-серверы, ленивая загрузка, различные статусы сущностей (временные, постоянные, удаленные, отсоединенные ...), поэтому я предполагаю, что мне нужно будет отключить все эти функции и использовать Hibernate в качестве инструмента, который будет генерировать структуру таблицы и все запросы (сложные соединения и т. д. c) для меня, но я выполню эти запросы вручную.

Но я не знаю, возможно ли это.

Я смотрел на ORMLite также, потому что он не имеет этих расширенных функциональных возможностей, но, к сожалению, ORMLite не поддерживает наследование, и, например, упомянутая выше одиночная таблица на иерархию классов невозможна .

...