/** * */ package com.gffny.ldrbrd.common.model.impl; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.annotations.ForeignKey; import org.hibernate.annotations.NamedQueries; import org.hibernate.annotations.NamedQuery; import com.gffny.ldrbrd.common.model.CommonUUIDEntity; /** * @author jdgaffney * */ @NamedQueries({ @NamedQuery(name = CourseHole.FIND_BY_COURSE_ID_AND_HOLE_NUMBER, query = "SELECT ch FROM CourseHole ch WHERE ch.course.id = :courseId and ch.holeNumber = :holeNumber"), @NamedQuery(name = CourseHole.FIND_BY_COURSE_ID, query = "SELECT ch FROM CourseHole ch WHERE ch.course.id = :courseId ORDER BY holeNumber ASC") }) @Entity @Table(name = "t_hole") public class CourseHole extends CommonUUIDEntity { /** * */ private static final long serialVersionUID = -2698132847477453497L; public static final String FIND_BY_COURSE_ID_AND_HOLE_NUMBER = "findCourseHoleByCourseIdAndHoleNumber"; public static final String FIND_BY_COURSE_ID = "findCourseHoleByCourseId"; private String name; private int holeDistance; private String holeDescription; private int holeNumber; private String holeImageId; private Course course; // TODO ADD HOLE PAR! /** * * @param name * @param distance * @param description * @param holeNumber * @param holeImageId * @return */ public static CourseHole createCourseHole(Course course, String name, int distance, String description, int holeNumber, String holeImageId) { CourseHole courseHole = new CourseHole(); courseHole.setCourse(course); courseHole.setName(name); courseHole.setHoleDistance(distance); courseHole.setHoleDescription(description); courseHole.setHoleNumber(holeNumber); courseHole.setHoleImageId(holeImageId); return courseHole; } /** * @return the name */ @Column(name = "hl_nm") public String getName() { return name; } /** * @param name * the name to set */ public void setName(final String name) { this.name = name; } /** * @return the holeDistance */ @Column(name = "hl_dstnc") public int getHoleDistance() { return holeDistance; } /** * @param holeDistance * the holeDistance to set */ public void setHoleDistance(final int holeDistance) { this.holeDistance = holeDistance; } /** * @return the holeDescription */ @Column(name = "hl_dsc") public String getHoleDescription() { return holeDescription; } /** * @param holeDescription * the holeDescription to set */ public void setHoleDescription(final String holeDescription) { this.holeDescription = holeDescription; } /** * @return the holeNumber */ @Column(name = "hl_nmbr") public int getHoleNumber() { return holeNumber; } /** * @param holeNumber * the holeNumber to set */ public void setHoleNumber(final int holeNumber) { this.holeNumber = holeNumber; } /** * @return the holeImageId */ @Column(name = "hl_img_ref") public String getHoleImageId() { return holeImageId; } /** * @param holeImageId * the holeImageId to set */ public void setHoleImageId(String holeImageId) { this.holeImageId = holeImageId; } /** * @return the serialversionuid */ public static long getSerialversionuid() { return serialVersionUID; } /** * @return the course */ @ManyToOne @JoinColumn(name = "crs_id", nullable = false) @ForeignKey(name = "id") @JsonIgnore public Course getCourse() { return course; } /** * @param course * the course to set */ public void setCourse(Course course) { this.course = course; } }