Как я могу узнать длину столбца в JPA @Entity? - PullRequest
4 голосов
/ 23 марта 2009

У меня есть столбец String, определенный с

@Column(length = 4000)

Атрибут содержит информацию журнала и может быть длиннее определенной длины. В этом случае поле может быть безопасно обрезано без выдачи сообщения об ошибке.

Я бы хотел узнать определенную длину столбца в классе DAO для pojo, чтобы при необходимости я мог обрезать строку. Как я могу это сделать?

С уважением,

Chris

Ответы [ 4 ]

6 голосов
/ 20 мая 2010

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

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

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

person.getClass().getDeclaredField("firstName").getAnnotation(Column.class).length()
1 голос
/ 17 декабря 2015

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

Пример

public static final short FIELD_LENGTH = 255;
@Column(name="FIELD", length = FIELD_LENGTH)
private String field;
1 голос
/ 23 марта 2009

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

0 голосов
/ 23 марта 2009

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

Используете ли вы Hibernate? Если это так, то Hibernate Validator должен подтвердить для вас длину и предоставить подходящее сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...