/** * */ package com.gffny.ldrbrd.common.model.mapping; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.xml.bind.annotation.XmlTransient; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.annotations.ForeignKey; import com.gffny.ldrbrd.common.model.CommonUUIDEntity; import com.gffny.ldrbrd.common.model.impl.Course; import com.gffny.ldrbrd.common.model.impl.GolferProfile; /** * @author jdgaffney * */ @NamedQueries({ @NamedQuery(name = FavouriteCourse.FAVOURITE_LIST_BY_GOLFER_ID, query = "SELECT fc from FavouriteCourse fc WHERE fc.golfer.id = :golferId") }) @Entity @Table(name = "t_favourite_course") public class FavouriteCourse extends CommonUUIDEntity { /** * */ private static final long serialVersionUID = -1182398514781958951L; /** * */ public static final String FAVOURITE_LIST_BY_GOLFER_ID = "favourite_list_by_golfer_id"; /** * */ private GolferProfile golfer; /** * */ private Course course; /** * */ int favouritePosition; /** * default zero arg constructor */ public FavouriteCourse() { super(); } /** * * @param golfer * @param course */ public FavouriteCourse(GolferProfile golfer, Course course) { super(); this.golfer = golfer; this.course = course; } /** * @return the golfer */ @JsonIgnore // No need to show the golfer @XmlTransient @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "glfr_id", nullable = false) @ForeignKey(name = "id") public GolferProfile getGolfer() { return golfer; } /** * @param golfer * the golfer to set */ public void setGolfer(GolferProfile golfer) { this.golfer = golfer; } /** * @return the course */ @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "crs_id", nullable = false) @ForeignKey(name = "id") public Course getCourse() { return course; } /** * @param course * the course to set */ public void setCourse(Course course) { this.course = course; } /** * @return the favouritePosition */ @Column(name = "fvrt_pstn") public int getFavouritePosition() { return favouritePosition; } /** * @param favouritePosition * the favouritePosition to set */ public void setFavouritePosition(int favouritePosition) { this.favouritePosition = favouritePosition; } }