将成员值限制为集合子集的正确方法

时间:2014-12-02 03:37:59

标签: java spring hibernate

假设我有一个具有专业字段的人物对象,这只是一个字符串列表。使用Spring和hibernate将规范限制为仅由用户或管理员定义的职业子集的规范方式是什么?即,运行时全局预定义职业的列表是{Accountant,Developer},用户添加了' Plumber'到列表。现在,如果创建了一个新人,我想限制人可以拥有的可能职业到列表中的3个人。

最初,我实现了一个Enum,但这似乎是一个糟糕的设计,因为它是在编译时生成的,并且无法在运行时添加(我认为?)。正确的方法是使用专业来定义一个列表,并在每个请求创建一个人时,用一个成员填充一个单独的成员,这是一个专业列表?然后,域对象人员只会从单例中获取专业(可能是在服务层?)。

1 个答案:

答案 0 :(得分:0)

您可以创建与具有一对多关系的Person相关的新Entity Profession。通过这种方式,职业永远只是Hibernate坚持的职业。专业实体并不需要太多。现在只是一个身份和名字。稍后您可以根据需要添加更多属性。