エンティティがバインドされているすべてのスキーマの詳細を本質的にイントロスペクションできます。最終的に却下されるデータベースにデータを(したがって、無駄なリソースを)提出しないでください。アプリケーションレベルのDB制約フォワーディング:JDBCとSpringを自動的に使用する方法
例えば:
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.
私は明らかに私はこれを自分で実装することができます見ることができますが、私は偉大な世界のどこかにそこに想定していますが私のためにこの仕事を行います豆/バリです。
私はすでにjavax.validationを使用しています。ビジネスルールをDB(1か所)に配置すると、ルールを重複して転送するだけです。複製はエンティティフィールドに@NotNullを持ち、カラムにNOT NULLを持つでしょう。 DB内の制約が破棄されると、アプリケーションが過度に制限される可能性があります。 –