Hibernate 3.2.5 で Java アプリケーションを作成しています。私は Netbeans 7.2 で開発しています。データベースは MySQL 5.5 です。基本的な考え方は、アメリカンフットボールの試合です。
私の現在の問題は、クラスの設計にあります。 aと aPlayをリンクしたいのですが、特定の では、 の特定のサブクラスしか受け入れられません。制約にはいくつかのタイプがあります。PlayPlayerActionPlayPlayerAction
- 要件の制約 (「この
Playサブクラスにはこれが必要ですPlayerAction」) - 可能性制約 (「この
Playサブクラスはこれを持つことができるPlayerAction」) - 除外制約 (「このサブクラスはA と B の
Play両方を同時に持つことはできません」)PlayerAction
コード:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Play implements Countable, Serializable, Locatable {
@OneToMany(cascade=CascadeType.ALL, mappedBy="play")
private List<PlayerAction> actions;
}
たとえば、私のクラスでは型PassingPlayのみを許可できPlayerActionsます。
PassActionReceptionActionSackActionInterceptionActionSackAction除外ReceptionAction
RunningPlayPlayerActions次のタイプのみを許可できます。
- 必要
RunAction TackleActionFumbleAction
等
理想的なソリューションは、保守が容易である限り、構築が容易である必要はありません。現在の私の唯一のアイデアは、すべてのサブクラスに String[][] を返すメソッドを与えることですが、それは非常に不自由で、面倒で、オブジェクト指向ではありません。実装を開始したくありません。