[Java lista] Hibernate - öröklött osztályok

Szécsényi Gergely javalista at gmail.com
2009. Ápr. 22., Sze, 22:26:05 CEST


Sziasztok,

a következő a problémám:

Van egy alkalmazás, ami több modulból fog állni. Mindkét modulban
lenne egy Company tábla, de minden modulban csak a maga attributumait
lehetne elérni.

 Ezért arra gondoltam, hogy ezt úgy oldom meg, hogy lesz egy abstract
BaseCompany, azokkal az adatokkal, funkciókkal, ami mindkét táblában /
osztályban szerepelne, és örökléssel egy Mod1Company, meg egy
Mod2Company.

A célom az az, hogy ezután minden modulban hozzá lehessen rendelni a
speciális adatokat.

Próbálkoztam a Hibernate - Mapping örökléses típusaival, de mindegyik
úgy mu"ködne, hogy vagy az egyik subclass-ban található meg a Company,
vagy a másikban. De nekem arra lenne szükségem, hogy mindkét
subclassban elérhessem ugyanazt a Company-t.

Ezt a mappinget bele is építettem az alkalmazásba:

A table per subclass mapping would look like:

<class name="Payment" table="PAYMENT">
    <id name="id" type="long" column="PAYMENT_ID">
        <generator class="native"/>
    </id>
    <property name="amount" column="AMOUNT"/>
    ...
    <joined-subclass name="CreditCardPayment" table="CREDIT_PAYMENT">
        <key column="PAYMENT_ID"/>
        <property name="creditCardType" column="CCTYPE"/>
        ...
    </joined-subclass>
    <joined-subclass name="CashPayment" table="CASH_PAYMENT">
        <key column="PAYMENT_ID"/>
        ...
    </joined-subclass>
    <joined-subclass name="ChequePayment" table="CHEQUE_PAYMENT">
        <key column="PAYMENT_ID"/>
        ...
    </joined-subclass>
</class>
Four tables are required. The three subclass tables have primary key
associations to the superclass table (so the relational model is
actually a one-to-one association).

Ez már majdnem jó, de itt mindig létre kell hoznom pl a CHEQUE_PAYMENT
táblába automatikusan a kulcsrekordot, ha létrehozok a CREDIT_PAYMENT
táblában egy rekordot, hogy a ChequePayment -bo"l is le tudjam
kérdezni.

Szóval némi hackeléssel müködik, de azt szeretném kérdezni, hogy nincs
erre más módszer?

A fenti példán is látszik, hogy arra épül, hogy egy fizetés az VAGY
csekk, VAGY készpénz. Nem lehetne az. hogy lekezleje az ÉS kapcsolatot
?

-- 
Gergő


További információk a(z) Javalist levelezőlistáról