使用Hibernate建模多个多态关系

时间:2010-03-23 08:27:34

标签: java ruby-on-rails ruby hibernate

Ruby on Rails具有多态关系,这对于实现评论,标记和评级等功能非常有用。我们可以有一个评论,标签或评级类,它与可评论,可标记和可评价的对象具有多对一的多态关系。此外,给定的域对象可以选择实现这种关系的任何组合。因此,它可以同时具有可评论性,可标记性和可评价性。

我无法想到在Hibernate中复制此功能的简单方法。理想情况下,会有一个Comment类与Commentable类有多对一的关系,而Commentable类反过来与Comments有一对多的关系。如果具体的域类可以继承许多这样的类,比如Commentable和Taggable,那将是理想的。事情看起来有点复杂,因为Java类只能扩展另一个类,而某些代码最终可能会被多个类复制。

我想知道使用Hibernate整洁简洁地建模这种关系的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

在我看来,你的问题不是特定于hibernate,而是更多的是“如何绕过单一继承模型?”

如果实现接口不是您的想法AOP(面向方面​​编程)可能提供了一种方法,让您按照自己的意愿行事。