Можно изменить тип атрибута, используя конвертер атрибутов аннотация.В вашем случае это будет означать расширение AttributeConverter<Long, Integer>
и использование этого конвертера для вашего поля id
:
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Convert(converter = LongToIntConverter.class)
private long id;
Однако это приведет к исключению, если значение вашего идентификатора long
превышает диапазон доступныхint
значения (2^31 + 1
).
Чтобы этого никогда не происходило, вы должны убедиться, что генерация идентификатора ограничена этим пределом.
Редактировать: Просто чтобы спросить, почему вы хотите преобразовать идентификатор в long
, но сохранить схему базы данных такой же?Я не вижу преимущества в том, чтобы делать оба.