我试图将现有的Ruby on Rails/Active Record组件转换为Springboot/JPA/Hibernate堆栈。JPA /休眠 - 多态多对一关系设计
有一个实体模型,其中多个不相关的类型都可以应用注释。
在Rails的世界里,这是通过模型中的多态关系实现的。从数据库的角度来看,这意味着我有一个带有'commentable_id'和'commentable_type'的注释表,它指向实体类型和拥有注释的id。
我打算有一个抽象类'CommentableEntity',所有需要支持注释的实体都会扩展。
我试过应用不同的继承策略,但找不到适合正确的一个: - 单表不起作用,因为具有注释的实体具有不应该在同一个表中的不同属性 - 联合表感到尴尬,因为只为CommentableEntity的表只会有一个ID字段(是这些实体中唯一的共享字段)
是否有另一种方法来实现这一点?我试图避免一个单独的多对多表格模型。 apple_comments,orange_comments等或单独的评论表,如apple_comment(带有apple_id),orange_comment(带有orange_id)等。
感谢您的任何建议!