/******************************************************************************* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2013,2014 by Peter Pilgrim, Addiscombe, Surrey, XeNoNiQUe UK * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU GPL v3.0 * which accompanies this distribution, and is available at: * http://www.gnu.org/licenses/gpl-3.0.txt * * Developers: * Peter Pilgrim -- design, development and implementation * -- Blog: http://www.xenonique.co.uk/blog/ * -- Twitter: @peter_pilgrim * * Contributors: * *******************************************************************************/ package je7hb.jpa.advanced.maps1; import org.hibernate.validator.constraints.NotEmpty; import javax.persistence.*; import java.util.HashMap; import java.util.Map; /** * The type Artist * * @author Peter Pilgrim (peter) */ @Entity public class Artist { @Id @Column(name="ARTIST_ID") private int artistId; @NotEmpty @Column(nullable = false, name="ARTIST_NAME") private String artistName; @OneToMany(mappedBy="artist",cascade = CascadeType.ALL) @MapKey() private Map<Integer,Album> albums = new HashMap<>(); public Artist() { } public Artist(int artistId, String artistName) { this.artistId = artistId; this.artistName = artistName; } public int getArtistId() { return artistId; } public void setArtistId(int artistId) { this.artistId = artistId; } public String getArtistName() { return artistName; } public void setArtistName(String artistName) { this.artistName = artistName; } public Map<Integer, Album> getAlbums() { return albums; } public void setAlbums(Map<Integer, Album> albums) { this.albums = albums; } @Override public String toString() { return "Artist{" + "artistId=" + artistId + ", artistName='" + artistName + '\'' + "} " + super.toString(); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Artist)) return false; Artist artist = (Artist) o; if (artistId != artist.artistId) return false; return true; } @Override public int hashCode() { return artistId; } }