Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 持久化文本验证器_Java_Hibernate_Oop_Persistence_Validation - Fatal编程技术网

Java 持久化文本验证器

Java 持久化文本验证器,java,hibernate,oop,persistence,validation,Java,Hibernate,Oop,Persistence,Validation,我有一个java应用程序,在其中我可以从下拉列表中选择一个对象(比如说一个计算机名),然后配置它。对于下拉列表中的每台计算机,都有需要配置的不同配置字段。我的数据库中有一个表,它将配置字段映射到编译器。每行包含计算机名、配置字段名和字段类型 例如: computer_name | field_name | type ======================================= test1 | ip | String ---------

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

例如:

computer_name | field_name    | type
=======================================
 test1        | ip            | String
---------------------------------------
 test1        | user name     | String
---------------------------------------
 test2        | manage_port   | Number
---------------------------------------
 test3        | creation_date | Date
从UI的下拉框中选择
test1
时,用户将看到两个文本框,一个用于ip,另一个用于用户名。每个文本框都需要呈现给用户,并且有一个检查正则表达式的验证器。选择
test2
时,我想验证这确实是一个数字,以及最小值和最大值。对于
test3
我需要确保日期格式(再次使用正则表达式)

数据库是postgres(尽管我想解决方案应该适用于每个关系数据库),我使用的是Spring+Hibernate

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

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

Hibernate支持 每个类层次结构的表、每个子类的表、每个具体类的表

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

Hibernate支持 每个类层次结构的表、每个子类的表、每个具体类的表


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

如果没有太多字段,我会使用嵌入的
@实体。只需将您可能需要的字段映射到表中,并使用JPA的@Embedded选项以保持面向对象

如果没有太多字段,我会使用嵌入的
@实体。只需将您可能需要的字段映射到表中,并使用JPA的@Embedded选项以保持面向对象