/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * 02/25/2009-2.0 Guy Pelletier * - 265359: JPA 2.0 Element Collections - Metadata processing portions ******************************************************************************/ package org.eclipse.persistence.testing.models.jpa.complexaggregate; import javax.persistence.*; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import static javax.persistence.GenerationType.*; @Entity @Table(name="CMP3_HOCKEY_COACH") public class HockeyCoach implements Serializable { private int id; private CoachVitals vitals; private String lastName; private String firstName; private Map<HockeyPlayerName, HockeyPlayer> favouritePlayers; public HockeyCoach () { favouritePlayers = new HashMap<HockeyPlayerName, HockeyPlayer>(); } @Column(name="FNAME") public String getFirstName() { return firstName; } @Column(name="LNAME") public String getLastName() { return lastName; } @Id @GeneratedValue(strategy=TABLE, generator="HOCKEY_COACH_TABLE_GENERATOR") @TableGenerator( name="HOCKEY_COACH_TABLE_GENERATOR", table="CMP3_HOCKEY_SEQ", pkColumnName="SEQ_NAME", valueColumnName="SEQ_COUNT", pkColumnValue="HOCKEY_PLAYER_SEQ" ) @Column(name="ID") public int getId() { return id; } @Embedded public CoachVitals getVitals() { return vitals; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setId(int id) { this.id = id; } public void setLastName(String lastName) { this.lastName = lastName; } public void setVitals(CoachVitals vitals) { this.vitals = vitals; } @OneToMany(mappedBy="coach") public Map<HockeyPlayerName, HockeyPlayer> getFavouritePlayers() { return favouritePlayers; } public void setFavouritePlayers( Map<HockeyPlayerName, HockeyPlayer> favouritePlayers) { this.favouritePlayers = favouritePlayers; } public void addFavouritePlayer(HockeyPlayer player){ player.setCoach(this); HockeyPlayerName name = new HockeyPlayerName(); name.setFirstName(player.getFirstName()); name.setLastName(player.getLastName()); favouritePlayers.put(name, player); } public String toString() { return "Hockey coach: " + getFirstName() + " " + getLastName(); } }