Учебник JEE6 (http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html) предлагает JSR-303/Bean Validation следует использовать для проверки ввода - или, по крайней мере, это моя интерпретация.Должен ли я полагаться на базу данных для проверки атрибутов Hibernate?
Тем не менее, некоторые аннотации проверки бина, такие как @NotNull, могут оказаться не полезными на уровне проверки интерфейса, а скорее на уровне предварительной сохранности.
Например, рассмотрим следующий объект:
public class Registry {
@NotNull
String userName;
@NotNull
Date createdAt;
}
В этом случае, есть форма, на которой имя_пользователя заполняется самим пользователем. Но я не хочу, чтобы пользователь знал о дате создания реестра. Я хочу, чтобы мой backend установил его с текущей датой сервера.
Итак, я обычно привязываю этот объект к форме на странице и использую @Valid для проверки JSR-303. Но дело в том, что я не «createdAt», чтобы быть проверенным с помощью проверки Bean, я хочу, чтобы он был проверен только тогда, когда сущность будет сохранена Hibernate. Но, с проверкой Bean, оба атрибута получают подтверждение по запросу формы.
Как это можно найти? Предположил ли JSR-303 работать в таком сценарии? Должен ли я полагаться на проверку нулевой поля базы данных для атрибута «createdAt»?
Это сообщение очень много о том же номере, но я не нашел ни одного ответа там либо: Validation where to organize in web app for more efficient way
прохладный! Я попробую! благодаря! – felipecao