Как в JPA Entity ограничить размер id типа String чтобы не выбрасывался SQLSyntaxErrorException: Specified key was too long

163
20 января 2019, 20:50

Использую spring+jpa.
Есть сущность, у которой id или поле name является String:

@Entity
class Customer{
 @id
 String id;
 String name;
...
}

Если id - поле типа int - все ок.

Если Srting:

SQLSyntaxErrorException: Specified key was too long; max key length is 1000 bytes

Использую базу MySQL.

Answer 1

MySql не позволяет хранить использовать первичные ключи больше 1000 байт (1 символ это 1-2 байта в зависимости от кодировки). Судя по всему, твоё исключение падает во время вставки, если у тебя слишком длинный ключ (полу String id). Аналогичная ситуация в этом вопросе

Answer 2
    @Column(length = 10)
    private String id;

Вопрос решается добавление аннотации @Column из import javax.persistence.Column;

READ ALSO
Выборка значений подзапросом

Выборка значений подзапросом

Существует многоуровневый список этажей и кабинетов на каждом этаже в зданииВ этом списке есть этаж ID=1 и кабинет ID=2

167
Помогите с запросом MySQL. 100.000 вопрос

Помогите с запросом MySQL. 100.000 вопрос

Имеется две таблицы с одинаковой структурой: Id int, Type int, Data blob Нужно во второй таблице выбрать первые 10 записей по каждому Type и изменить случайными...

167
Как починить поехавшие блоки картинок CSS

Как починить поехавшие блоки картинок CSS

Необходимо убрать расстояние между разными строками(блоками)

191
Как изменить внутренние стили виджета Disqus

Как изменить внутренние стили виджета Disqus

На сайте стоит виджет комментирования сервиса DisqusМне нужно изменить стили заголовков в разделе "Также на site

165