【Hibernate学习笔记】分层数据验证

【Hibernate学习笔记】分层数据验证_第1张图片

    在四层应用结构中,不应该依赖hibernate持久化层或数据库层来负责数据验证(因为这样会降低数据验证的效率),应该由表述层或业务逻辑层负责数据验证。

    例如,对于Customer对象的name属性,假如表述层、业务逻辑层和hibernate持久化层都没有检查name属性是否为null,那么数据库层会监测到NAME字段违反了数据完整性约束(在数据库中NAME设置为not-null),从而抛出异常,如图2-2所示。包含非法数据的Customer对象从表述层依次传到数据库层,随后从数据库层抛出的错误信息又依次传到表述层,这种做法显然会降低数据验证的效率。

    既然如此,在hibernate层中把<property>元素的not-null属性设为true,有何意义呢?这主要是便于在软件开发和测试阶段能捕获表述层或业务逻辑层应该处理而未处理的异常,同时提醒开发人员在表述层或者业务逻辑层中加入必要的数据验证逻辑。

你可能感兴趣的:(【Hibernate学习笔记】分层数据验证)