Как я могу узнать длину столбца в JPA @Entity?

Массивы не работают так. Когда вы передаете массив функции, адрес первого элемента передается как указатель, и внутри функции больше нет информации о размере массива. (Прежде чем сам компилятор мог определить размер, потому что массив был объявлен в области видимости, но функцию можно вызывать из любого числа мест)

Если вы хотите сделать что-то подобное, вам придется либо использовать контейнерный класс, такой как вектор, или вы можете передать второй аргумент в функцию, определяющую размер массива. Другой способ заключается в том, чтобы иметь какую-то конечную точку в вашем массиве, как, например, в случае с c-строками, например, нулевое значение.

6
задан yottamoto 23 March 2009 в 16:05
поделиться

3 ответа

Посмотрите ответ EJB на этот вопрос;

Как повторно использовать длину поля в форме, валидации и ddl?

Перефразируя, если вам нужна длина из столбца firstName в таблице person , вы используете этот код.

person.getClass().getDeclaredField("firstName").getAnnotation(Column.class).length()
8
ответ дан 10 December 2019 в 00:44
поделиться

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

1
ответ дан 10 December 2019 в 00:44
поделиться

Используя Отражение был бы очевидный ответ.

Вы - использование, в спящем режиме? Раз так затем Быть в спящем режиме Блок проверки допустимости должен проверить длину для Вас и предоставить подходящее сообщение об ошибке.

0
ответ дан 10 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: