есть два класса сущностей:
@Entity
public class Place implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@OneToMany(mappedBy = "place")
private List<Event> events = new ArrayList<Event>();
private String name;
//getters setters
}
@Entity
public class Event implements Serializable {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id;
@OneToMany(mappedBy = "event" , cascade={CascadeType.PERSIST})
private List<Participant> participants = new ArrayList<Participant>();
@ManyToOne(optional=false,fetch=FetchType.EAGER) private Place place;
private String name;
// getters setters
}
сгенерированные таблицы:
<code>mysql> desc EVENT;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| ID | bigint(20) | NO | PRI | NULL | auto_increment |
| NAME | varchar(255) | YES | | NULL | |
| PLACE_ID | bigint(20) | YES | MUL | NULL | |
+----------+--------------+------+-----+---------+----------------+
mysql> desc PLACE;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| ID | bigint(20) | NO | PRI | NULL | auto_increment |
| LOCATION | varchar(255) | YES | | NULL | |
| NAME | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
Теперь я напишу немного Java, чтобы таблицы Place и Event выглядели следующим образом:
+----+--------+
| ID | NAME |
+----+--------+
| 1 | Prague |
+----+--------+
+----+-------------+----------+
| ID | NAME | PLACE_ID |
+----+-------------+----------+
| 1 | Programming | 1 |
+----+-------------+----------+
Теперь я хотел бы выбрать место и просмотреть все его события:
// there's an ejb talking with persistence layer
Place p = ejb.getPlaceWithId(1);
, и я бы подумал, что в p.events
есть нечто большее, чем пустая коллекция, но это не так - основываясь на моих наблюдениях.Почему?