Ruby on Rails具有多态关系,这对于实现评论,标记和评级等功能非常有用。我们可以有一个评论,标签或评级类,它与可评论,可标记和可评价的对象具有多对一的多态关系。此外,给定的域对象可以选择实现这种关系的任何组合。因此,它可以同时具有可评论性,可标记性和可评价性。
我无法想到在Hibernate中复制此功能的简单方法。理想情况下,会有一个Comment类与Commentable类有多对一的关系,而Commentable类反过来与Comments有一对多的关系。如果具体的域类可以继承许多这样的类,比如Commentable和Taggable,那将是理想的。事情看起来有点复杂,因为Java类只能扩展另一个类,而某些代码最终可能会被多个类复制。
我想知道使用Hibernate整洁简洁地建模这种关系的最佳实践是什么?
答案 0 :(得分:0)
在我看来,你的问题不是特定于hibernate,而是更多的是“如何绕过单一继承模型?”
如果实现接口不是您的想法AOP(面向方面编程)可能提供了一种方法,让您按照自己的意愿行事。