2013-04-28 52 views
0

我有一個java應用程序,我可以從一個下拉列表中選擇一個對象(讓我們說 - 一個計算機名稱),然後配置它。對於下拉列表中的每臺計算機,都有需要配置的不同配置字段。我在我的數據庫中有一個將配置字段映射到comptuer的表。每行包含計算機名稱,配置字段名稱和字段類型。堅持文本驗證器

例如:

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

當選擇從UI中的下拉框test1用戶會看到2文本框,一個是IP,第二個用戶名。每個文本框都需要呈現給用戶,並有一個驗證器來檢查正則表達式。當選擇test2我想驗證這確實是一個數字,也是最小值和最大值。對於test3我需要確保日期格式(再次使用正則表達式)。

數據庫是postgres(雖然我猜解決方案應該適用於每個關係數據庫),我使用的是Spring + Hibernate。

我的想法是爲驗證器創建驗證器POJO和數據庫表,驗證器將包含所有可能在不同列中進行的驗證。問題是,我覺得有空列有點多餘。在java中,我想我會做一個抽象的Validator類,它擴展了RegexValidator類,NumberFormatValidator類,MinNumberValidator類,但是我不知道如何在數據庫中正確表示它(需要記住它需要是映射到配置表中的每個配置行)。

有關更好設計的任何建議?

回答

1

如果你沒有很多字段,我會用@Embedded實體來做。只需映射可能需要表的字段並使用JPA的@Embedded選項,以便保持以對象爲導向。

2

Hibernate支持每個類層次結構,每個子類表,表中每個具體類

three types of mapping. 表看起來像你的情況下,小到足以「表每類層次結構」。

+0

展望未來。將更新它如何去。謝謝! – Avi 2013-04-28 14:31:26