MySQL データベースに複数のテーブルがあります。それらが次のように見えるとしましょう:
本:
title, subject, publisher, book_author
ジャーナル:
title, subject, publisher, journal_name
ブログ:
title, subject, website, blog_author
Eニュース:
title, subject, website, news_paper_name
特定の構造は問題とは無関係です。実際には、すべてのテーブルが共有する約 20 の列と、少数または 1 つのテーブルに固有の列があります。ポイントは、それらはすべていくつかの列を共有するということです。注釈付きのクラスを使用して、Hibernate を使用してこれらにアクセスしたいと考えています。それぞれがアクセサーとミューテーターを持つ 20 以上の冗長なフィールドを持つ 5 つ以上のクラスを持ちたくありません。次のようなクラス構造が必要です。
- アブストラクト
Publication
{タイトル、件名}- アブストラクト
PrintPublication
{出版社}Book
{本の著者}Journal
{ジャーナル名}
- アブストラクト
Online Publicaiton
{ウェブサイト}Blog
{ blog_author }ENews
{ news_paper_name }
- アブストラクト
しかし、私は一生、これを機能させる方法を理解できません。各具象クラスは、データベース内の単一のテーブルです。解決策はクラスごとのテーブル ( ) になると思っていました@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
が、興味深いエラーがいくつか発生しました。
このすべてに対する適切な解決策は何ですか? テーブル構造の変更に加えて。データベースは私のものではなく、変更する権限がありません。