MySQL データベースに複数のテーブルがあります。それらが次のように見えるとしましょう:
本:
title, subject, publisher, book_authorジャーナル:
title, subject, publisher, journal_nameブログ:
title, subject, website, blog_authorEニュース:
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)が、興味深いエラーがいくつか発生しました。
このすべてに対する適切な解決策は何ですか? テーブル構造の変更に加えて。データベースは私のものではなく、変更する権限がありません。