java - 持久化文本 validator

标签 java hibernate oop persistence validation

我有一个java应用程序,我可以在其中从下拉列表中选择一个对象(比如说-计算机名称),然后配置它。对于下拉列表中的每台计算机,需要配置不同的配置字段。我的数据库中有一个表,它将配置字段映射到计算机。每行包含计算机名称、配置字段名称和字段类型。

例如:

computer_name | field_name    | type
=======================================
 test1        | ip            | String
---------------------------------------
 test1        | user name     | String
---------------------------------------
 test2        | manage_port   | Number
---------------------------------------
 test3        | creation_date | Date

当从 UI 的下拉框中选择 test1 时,用户将看到 2 个文本框,一个用于 ip,第二个用于用户名。每个文本框都需要呈现给用户,并有一个检查正则表达式的 validator 。当选择 test2 时,我想验证这确实是一个数字以及最小值和最大值。对于 test3 我需要确保日期格式(再次使用正则表达式)。

数据库是 postgres(尽管我猜该解决方案应该适用于每个关系数据库)并且我正在使用 Spring + Hibernate。

我的想法是创建一个 validator POJO 和一个用于 validator 的数据库表,其中将包含不同列中可能的所有验证。问题是,我觉得拥有空列有点多余。在java中,我想我会做一个由RegexValidator类、NumberFormatValidator类、MinNumberValidator类扩展的抽象Validator类等等...但我不知道如何在数据库中正确表示它(需要记住它需要映射到配置表中的每个配置行)。

对于更好的设计有什么建议吗?

最佳答案

Hibernate 支持 three types of mapping. 每个类层次结构表、每个子类表、每个具体类表

看起来你的案例足够小,可以成为“每个类层次结构的表”。

关于java - 持久化文本 validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263712/

相关文章:

java - 如何使用hibernate更新数据库?

c++ - 如何防止通过指向其父类型的指针删除对象?

c# - 在 Main() 中保持模块化?

Java 接口(interface)类似于 Predicate,但没有参数

java - MySQL 更新永远持续

java - Spring Autowiring 的dao为空

java - 使用 jayspt 和 hibernate 查询数据

java - 修复无效响应后,扫描仪不允许我继续

java - 如何将提交按钮上的整数加一到jsp字符串?

python - 构建应用程序 : Is it bad form to have an app create directories on users computer for program file storage?