我找到了关于映射超类的子类化的帮助,并且我找到了关于如何映射 TreeMap 的帮助。但是,我根本找不到在子类中使用 TreeMap 的任何内容。情况如下:我正在向一个长期存在的应用程序添加一个功能。该应用程序已映射实体,其中一组实体形成层次结构。有一个,例如,它建立基类。然后有许多许多子类使用元素来映射各个子类。子类都使用元素来引用包含子类属性的附加表。这已经工作了好几年,生活似乎还不错。
现在我的工作开始了,我需要在我的新子类实体中使用 TreeMap(与所有其他实体扩展相同的基类),所以我要做的第一件事是尝试以与其他子类相同的方式映射它,使用一个里面一个。
简而言之,当我启动应用程序并且 Hibernate 开始映射时,我遇到了一个错误。研究这个错误让我查看了休眠映射文件的 DTD,你猜怎么着?根据我的解释,不能在 .
同样的研究让我了解了哪个可以包含地图。所以,我去配置一个内部基类映射。
当我这样做时,我遇到了奇怪的错误,引用了我什至在代码、映射中都找不到的符号……任何地方!更多的研究,我在 Hibernate 参考手册第 9 章中找到了一个参考,它说 Hibernate 不支持和元素的混合。所以这也做不到。
我的问题是:有没有我一直错过的解决方案?从事物的声音看来,如果您正在使用,您似乎不能在子类中配置地图,因为内部它不会占用地图......而且,虽然可以在 a 中配置 Map ,但我怀疑我可以在这里收集很多支持,以涉水通过当前映射文件并将所有实体重新映射为实体。
有人有什么想法吗?如果我看的不对,相信我,我愿意接受并学习!