1

我想建立这样的东西:

abstract class Owner extends Model {}
class User extends Owner {}
class Group extends Owner {}
class Thing extends Model {} 

每个Thing人都有一个,并且只有一个Owner可以是GroupOR an User。这怎么可能?我是否必须让 Owner 不抽象才能让 ActiveJDBC 将 things-table 中的 owner_id-column 映射到所有者?但是它如何确定我们拥有什么样的所有者,因为http://javalite.io/inheritance说 ActiceJDBC 中没有实现单表继承。

4

1 回答 1

0

您需要使用多态关联。继承权和所有权是有区别的。

ActiveJDBC 继承仅限于将通用功能传递给子类。然后你需要使用关系来创建“A 有很多 B”之类的东西,而多态关联似乎是你最好的选择。

因此,在您的情况下,用户和组将是事物的多态父级。然后,您可以选择创建一个单独的类 Owner(仅当它们共享某些功能时)。

所以..您将拥有三个表:USERS、GROUPS、THINGS。

于 2015-08-06T17:39:17.057 回答