У меня есть игра, состоящая из клиента / сервера + веб-страница. Центральным понятием в клиенте и игровом / веб-сервере является Account
. Учетные записи хранятся в базе данных, поэтому я нуждаюсь в некотором ORM и недавно взглянул на Hibernate и Cayenne.
Однако я понимаю, что обе платформы предоставляют "DatabaseBackedAccount"
-класс, который я расширяю другими моими Account
методами. Моя проблема в том, что класс Account
многократно используется на клиентской стороне, и я, очевидно, не хотел бы включать код, связанный с базой данных, в реализацию клиента.
Мое текущее решение состоит в том, чтобы иметь класс Account
(общий для сервера и клиента) и расширять его с помощью DatabaseBackedAccount
(переопределяя setter-методы и предоставляя метод commit) на стороне сервера. Я нахожу это вполне естественным и приятным, однако мне пришлось реализовать все gory sql-details и ORM самостоятельно.
Есть ли способ «перевернуть таблицу» в любой существующей структуре ORM, чтобы сгенерированные классы расширяли мой существующий класс?