Ich möchte in der Lage sein, im Detail die Details eines Schemas inspizieren alle meine Entitäten gebunden sind, und ziehen Sie diese auf die Anwendungsebene für die Validierung, damit ich Übermitteln Sie keine Daten (und verschwenden so Ressourcen) an eine db, die letztendlich abgelehnt wird.Anwendungsebene db Constraint Weiterleitung: Wie mit JDBC und Spring automatisch
Zum Beispiel:
CREATE TABLE Foo(
ID BIGINT PRIMARY KEY,
Baz varchar(5) NOT NULL
);
@Entity
public class Foo {
@Id
public Long id;
public String baz;
}
@Repository
public interface FooRepository extends PagingAndSortingRepository<Foo, Long> {}
Foo f = new Foo();
f.id = 1;
f.baz = "123456";
@Autowired
FooRespository fooRepo;
fooRepo.save(f); // fails BEFORE going to DB with constrain violation.
Ich kann mich deutlich sehen, kann dies selbst umzusetzen, aber ich bin irgendwo da draußen in der großen Welt der Annahme ist eine Bean/Validator, dass dieser Job für mich tun wird.
Ich benutze javax.validation bereits. Wenn ich Geschäftsregeln in die DB (an einer Stelle) setze, werde ich lediglich die Regel weiterleiten (nicht duplizieren). Duplizieren würde @NotNull für das Entitätsfeld und NOT NULL für die Spalte haben. Wenn die Einschränkung in der DB gelöscht wird, könnte die Anwendung übermäßig restriktiv sein. –