Spring JPA + H2 DB: сохранение значения поля без учета регистра - PullRequest
0 голосов
/ 08 марта 2020

Я пишу приложение Spring Boot, используя Spring JPA и H2 DB. В сущности user я хочу сохранить поле userId с уникальными значениями в случае нечувствительным образом.

Так, как только пользователь вставит userId как user1 , ему нельзя разрешить сохранять еще один userId как User1 .

Один из возможных способов - сделать геттером объекта user читать значение в в нижнем / верхнем регистре и установщики записывать значение в в нижнем / верхнем регистре , как показано ниже:

public String getUserId() {
        return userId.toLowerCase();
}

public void setUserId(String userId) {
        this.userId = userId.toLowerCase();
}

Есть ли альтернативное / лучшее решение, предпочтительно на уровне схемы?

1 Ответ

1 голос
/ 08 марта 2020

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

...