1

私は休止状態でローカリゼーションを行おうとしていますが、@ElementCollection (埋め込みマップでの HQL 選択を参照) に行き詰まっているため、実際のエンティティを使用して別のアプローチを試してみたいと思います:

@Entity
public class Category {
  ..
  @OneToMany(fetch = FetchType.EAGER) 
  @Cascade(...) 
  List<Localization> name;
}

@Entity
public class Localization {
  @Id
  @GeneratedValue
  private long id;
  @NotNull
  public String locale;
  @NotNull
  public String label;
}

実際にはカテゴリに複数の英語の翻訳を許可するため、これはあまり良くないことはわかっていますが、それは私にとっては問題ありません。

私の質問:
データベース全体でこのようなローカライズ可能な構成を使用し、ローカライズされた日付がかなり多くなるため、ローカライズ テーブルが非常に大きくなります。ローカライズされたリレーションを熱心に取得したいので、これはパフォーマンスの問題になる可能性があります。

ManyToOne マッピングごとに個別のテーブルを作成することは可能ですか (したがって、基本的には @ElementCollection によって暗黙的に行われますが、これは使用できません。上記のリンクを参照してください)。したがって、結果は次のような同一の構造を持つ多くのテーブルになるはずです。

locale_category_name (id : long, locale : string, label : string)
locale_category_description (id : long, locale : string, label : string)
locale_product_name (id : long, locale : string, label : string)

4

0 に答える 0