我想为使用 SpringMVC 和 Hibernate 的应用程序自动进行客户端数据验证,特别是在违反引用完整性约束的情况下。我的应用程序结构的简单版本如下:
D B
我有一个带有一些表的 oracle 数据库,让我们举个例子
具有DOCUMENT
整数主键DOC_KEY
和TITLE
字段的表PAGE
具有外键FK_DOCUMENT_ID
、键PAG_KEY
和文本“TEXT”字段的表。
ORM/应用层
我有两个(休眠)实体(Document
和Page
)映射这些表。要创建一个Page
您需要在之前创建一个,如果没有在外键字段中指定相关项Document
,则无法创建一个。Page
DOC_KEY
网络层
我创建了一个表单,允许用户创建一个包含一些页面的新文档。他可以插入文档的标题和一页或多页。尝试在Page
不指定Document
标题的情况下创建对象会导致 DB 错误,因为没有为页面指定文档。
示例用例
用户尝试创建一个页面来设置其内容而不指定文档标题。客户端验证器将标题字段标记为红色,要求用户填写。
问题
如果我尝试插入的实体/对象/行不满足 FK 完整性规则检查,是否可以自动生成客户端验证规则以避免服务器端调用?
或者是否有任何工具允许客户端验证工具“理解”外键一致性?
我尝试使用 jquery,但无法找到自动检查外键一致性的方法。
编辑: *接受答案的注释*当然,如果不查询或缓存客户端,就无法知道数据库客户端的状态,但该知识对于检查密钥是否存在并且是否满足完整性约束是必要的。我接受的答案与问题的重点相匹配。我之前应该考虑过的