也许更简单的选择是向每个Company添加CLOB列,并将扩展存储为XML。与您的解决方案相比,这里有一组不同的权衡取舍,但是只要多余的数据不需要通过SQL即可访问(没有索引,fkey等),它可能会比您现在做的要简单。
这也意味着,如果您对多余的数据有一些幻想的逻辑,则需要以不同的方式实现它。例如,如果您需要所有可能的扩展类型的列表,则必须单独进行维护。或者,如果您需要搜索功能(通过电话号码查找客户),则需要使用Lucene或类似的解决方案。
如果您有兴趣,我可以详细说明。
编辑:
要启用搜索,您需要像lucene这样的东西,它是对任意数据进行自由文本搜索的强大引擎。还有一个hibernate-
search,它使用注释等将lucene直接与hibernate集成在一起-
我没用过,但是我听说过它的好处。
为了获取/写入/访问数据,您基本上是在处理XML,因此应采用任何XML技术。最好的方法实际上取决于实际内容及其使用方式。我建议您考虑使用XPath进行数据访问,或者考虑定义自己的hibernate用户类型,以便将所有访问都封装到一个类中,而不仅仅是普通的String。



