package com.jspxcms.core.domain; import java.sql.Timestamp; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import org.apache.commons.lang3.StringUtils; /** * SpecialCategory * * @author liufang * */ @Entity @Table(name = "cms_special_category") public class SpecialCategory implements java.io.Serializable { private static final long serialVersionUID = 1L; @Transient public String getKeywords() { String keywords = getMetaKeywords(); if (StringUtils.isBlank(keywords)) { return getName(); } else { return keywords; } } @Transient public String getDescription() { String description = getDescription(); if (StringUtils.isBlank(description)) { return getName(); } else { return description; } } public void applyDefaultValue() { if (getCreationDate() == null) { setCreationDate(new Timestamp(System.currentTimeMillis())); } if (getViews() == null) { setViews(0); } if (getSeq() == null) { setSeq(Integer.MAX_VALUE); } } private Integer id; private Site site; private String name; private Integer seq; private Integer views; private String metaKeywords; private String metaDescription; private Date creationDate; // private Integer refers; public SpecialCategory() { } public SpecialCategory(String name, Site site) { this.name = name; this.site = site; } @Id @Column(name = "f_speccate_id", unique = true, nullable = false) @TableGenerator(name = "tg_cms_special_category", pkColumnValue = "cms_special_category", table = "t_id_table", pkColumnName = "f_table", valueColumnName = "f_id_value", initialValue = 1, allocationSize = 1) @GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_cms_special_category") public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "f_site_id", nullable = false) public Site getSite() { return site; } public void setSite(Site site) { this.site = site; } @Column(name = "f_name", nullable = false, length = 50) public String getName() { return this.name; } public void setName(String name) { this.name = name; } @Column(name = "f_seq", nullable = false) public Integer getSeq() { return this.seq; } public void setSeq(Integer seq) { this.seq = seq; } @Column(name = "f_views", nullable = false) public Integer getViews() { return this.views; } public void setViews(Integer views) { this.views = views; } @Column(name = "f_meta_keywords", length = 150) public String getMetaKeywords() { return this.metaKeywords; } public void setMetaKeywords(String metaKeywords) { this.metaKeywords = metaKeywords; } @Column(name = "f_meta_description") public String getMetaDescription() { return this.metaDescription; } public void setMetaDescription(String metaDescription) { this.metaDescription = metaDescription; } @Temporal(TemporalType.TIMESTAMP) @Column(name = "f_creation_date", nullable = false, length = 19) public Date getCreationDate() { return this.creationDate; } public void setCreationDate(Date creationDate) { this.creationDate = creationDate; } // @Basic(fetch=FetchType.LAZY) // @Formula("(select count(*) from cms_special t where t.f_speccate_id = f_speccate_id)") // public int getRefers() { // return this.refers; // } // // public void setRefers(Integer refers) { // this.refers = refers; // } }