Hallo,
mein Problem ist eine legacy Tabelle ohne primary key in Java zu mappen.Die Tabelle hat auch keine foreign keys.
In der Tabelle steht eine Liste von Listen.
Ausgelesen werden soll ein Feldplan für ein Experiment.
Ein fieldplan Hat eine Liste von Lanes die wiederum eine Liste von Plots enthalten.
mysql> desc FIELDPLAN;
Code:
+-----------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+-------------+------+-----+---------+-------+
| ExperimentID | varchar(55) | YES | | NULL | |
| TreatmentCode | varchar(15) | YES | | NULL | |
| Block | varchar(15) | YES | | NULL | |
| HolderFAOCode | varchar(10) | YES | | NULL | |
| AccessionNumber | varchar(35) | YES | | NULL | |
| IncreaseID | varchar(55) | YES | | NULL | |
| TransactionID | varchar(55) | YES | | NULL | |
| Lane | smallint(6) | YES | | NULL | |
| Plot | int(11) | YES | | NULL | |
[some attributes....]
+-----------------------+-------------+------+-----+---------+-------+
Ein Beispiel Inhalt der Tabelle:
mysql> select ExperimentID,Block,Lane,Plot,StockSite,TreatmentCode,HolderFAOCode,AccessionNumber,Status from FIELDPLAN order by Exper
Code:
+--------------------------+-------+------+------+-----------------+---------------+---------------+-----------------+----------+
| ExperimentID | Block | Lane | Plot | StockSite | TreatmentCode | HolderFAOCode | AccessionNumber | Status |
+--------------------------+-------+------+------+-----------------+---------------+---------------+-----------------+----------+
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 1 | 1 | NULL | NULL | SW | SW | Marker |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 1 | 2 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 3095 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 1 | 3 | NULL | Ten rows | BGR001 | A7BM0011 | Standard |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 1 | 4 | DEUQue_BAZReurs | Ten rows | SWE002 | NGB6360 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 1 | 5 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 4488 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 2 | 1 | DEUQue_BAZReurs | Ten rows | SWE002 | NGB2710 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 2 | 2 | NULL | NULL | SW | SW | Marker |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 2 | 3 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 2950 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 2 | 4 | NULL | Ten rows | BGR001 | A7BM0001 | Standard |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 2 | 5 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 2924 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 3 | 1 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 4659 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 3 | 2 | NULL | Ten rows | CPVO | 19960125 | Standard |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 3 | 3 | NULL | NULL | SW | SW | Marker |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 3 | 4 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 2967 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 3 | 5 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 544 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 4 | 1 | DEUQue_BAZReurs | Ten rows | RUS001 | 200111466 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 4 | 2 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 2067 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 4 | 3 | DEUQue_BAZReurs | Ten rows | DEU146 | AVE 4794 | Project |
| 2007DEUQue_BAZ/AVEQInc10 | 1 | 4 | 4 | NULL | NULL | SW | SW | Marker |
+--------------------------+-------+------+------+-----------------+---------------+---------------+-----------------+----------+
60 rows in set (0.00 sec)
Was ich hinbekomme ist eine Klassenhirarchie in Java zu erstellen die dann aber auf mehrere Tabellen mappt.
Ist das überhaupt möglich so etwas auf genau eine Tabelle zu bekommen? Und wenn ja, wie? Diese Klassen hätt ich gern:
Code:
@Entity
public class Experiment ..{
....
List<Fieldplan> expFieldplan
....
}
public class Fieldplan {
List<Plot> Lane;
}
public class Plot {
all attributes of one plot
}
Wie müssen die annotiert werden, damit die Klassen auf die genannte Tabelle mappen?
Wenn mir jemand ein paar Hinweise geben könnte, wo so etwas schon dokumentiert ist, wäre das sehr nett.
Christians Bch hab ich komplett gelesen und ich kenne auch den Hibernate Wiki und die Faqs. Jedoch habe ich nichts finden können, was mir weiterhilft.
Ciao,
Carsten