【发布时间】:2012-06-15 20:18:38
【问题描述】:
我在 MySQL 数据库中有多个表。假设它们看起来像这样:
-
书:
title, subject, publisher, book_author -
杂志:
title, subject, publisher, journal_name -
博客:
title, subject, website, blog_author -
电子新闻:
title, subject, website, news_paper_name
特定结构与问题无关。实际上,大约有 20 个列是所有表共享的,而更多列是少数或只有一个表所独有的。关键是,它们都共享一些列。我想使用 Hibernate 来访问这些,使用带注释的类。我不想有 5 个以上的类,每个类都有 20 多个冗余字段,每个都有一个访问器和修改器。我想要一个类似这样的类结构:
-
摘要
Publication{ 标题,主题 }-
摘要
PrintPublication{ 发布者 }-
Book{ book_author } -
Journal{ 期刊名称 }
-
-
摘要
Online Publicaiton{ 网站 }-
Blog{ blog_author } -
ENews{ news_paper_name }
-
-
摘要
但是,我终其一生都无法弄清楚如何让它发挥作用。每个具体类都是数据库中的一个表。我认为解决方案是每个班级都有一个表 (@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)),但这引发了许多有趣的错误。
解决所有这些问题的正确方法是什么?除了改变表结构。该数据库不是我的,我没有被授予更改它的权利。
【问题讨论】:
标签: mysql hibernate jboss7.x hibernate-annotations