package hu.sch.domain; import hu.sch.domain.user.User; import hu.sch.domain.interfaces.HasUserRelation; import hu.sch.util.HungarianStringComparator; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.MappedSuperclass; /** * * @author balo */ @MappedSuperclass @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class AbstractValuationRequest implements Serializable, HasUserRelation, Comparable<AbstractValuationRequest> { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; //---------------------------------------------------- @ManyToOne @JoinColumn(name = "ertekeles_id", nullable = false) private Valuation valuation; //---------------------------------------------------- @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "usr_id") private User user; //---------------------------------------------------- @Column(name = "usr_id", insertable = false, updatable = false) private Long userId; //---------------------------------------------------- @Column(name = "ertekeles_id", updatable = false, insertable = false) private Long valuationId; public Long getId() { return id; } public void setId(final Long id) { this.id = id; } public Valuation getValuation() { return valuation; } public void setValuation(final Valuation valuation) { this.valuation = valuation; } public Long getValuationId() { return valuationId; } public void setValuationId(final Long valuationId) { this.valuationId = valuationId; } @Override public User getUser() { return user; } @Override public void setUser(final User user) { this.user = user; if (user != null) { userId = user.getId(); } } /** * Felhasználó ID-ja akié a belépőkérelem. Azért kell nekünk egy ilyen * külön, mert ha nem akarjuk lekérni a User objektumot, akkor is kíváncsiak * lehetünk az ID-ra, amit fel tudunk használni. * * @return felhasználó azonosítója, akié a belépőkérelem. */ @Override public Long getUserId() { return userId; } @Override public void setUserId(final Long userId) { this.userId = userId; } @Override public int compareTo(final AbstractValuationRequest o) { return HungarianStringComparator.scompare(user.getFullName(), o.getUser().getFullName()); } }