Вы можете иметь два репозитория мерзавца (клиент и сервер) и добавить их к "суперпроекту" (приложение). В этом "суперпроекте" можно добавить эти два репозитория как подмодули (проверка это учебное руководство ).
Другое (немного более грязное) возможное решение состоит в том, чтобы иметь отдельные ответвления для клиента и сервера, и затем можно вытянуть от ответвления 'сервера'.
Определите составной ключ с помощью String series
и int userId
и укажите идентификатор столбца соединения для пользователя в токене. Думаю, вам также придется добавить insertable = "false", updatable = "false".
<composite-id name="TikenPK" class="yourpackage.TokenPK">
<key-property name="series" column="series" type="string" />
<key-property name="userId" column="userId" type="integer"/>
</composite-id>