У меня 2 класса еды и дня.
Один день может иметь несколько блюд, а один - несколько дней.
Я храню объект Day со всеми приемами пищи за день.
И объект Meal без атрибута типа Day.
Код выглядит следующим образом:
public class Day {
Date date;
private Map<Meal, List<Integer>> mealsLines;
public Day() {
} ....
}
public class Meal implements java.io.Serializable {
private long id;
private String name;
public Meal() {
} ....
<hibernate-mapping>
<class name="data.Day" table="DAY">
<id name="date" type="java.sql.Date" access="field">
<column name="DATE" />
<generator class="assigned" />
</id>
<map name="mealsLines" table="MEAL" lazy="true" access="field">
<key>
<column name="DATE" />
</key>
<map-key type="data.Meal"></map-key>
<one-to-many class="data.Meal" />
</map>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="data.Meal" table="MEAL">
<id name="id" type="long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String" access="field">
<column name="NAME" />
</property>
</class>
</hibernate-mapping>
Итак, теперь с этими картами я получаю две таблицы:
Питание
ИМЯ ----> ДАТА <---- неправильно </p>
день
ДАТА
Что бессмысленно, потому что один прием пищи может быть разделен на более чем один день.
Я не хочу иностранный ключ в еде. Как я могу это понять?
Спасибо