package com.hongqiang.shop.modules.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
@Table(name="hq_parameter_group")
public class ParameterGroup extends OrderEntity
{
private static final long serialVersionUID = 192003501177471941L;
private String name;
private ProductCategory productCategory;
private List<Parameter> parameters = new ArrayList<Parameter>();
@JsonProperty
@NotEmpty
@Length(max=200)
@Column(nullable=false)
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
@NotNull
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(nullable=false)
public ProductCategory getProductCategory()
{
return this.productCategory;
}
public void setProductCategory(ProductCategory productCategory)
{
this.productCategory = productCategory;
}
@JsonProperty
@Valid
@NotEmpty
@OneToMany(mappedBy="parameterGroup", fetch=FetchType.LAZY, cascade={javax.persistence.CascadeType.ALL}, orphanRemoval=true)
@OrderBy("order asc")
public List<Parameter> getParameters()
{
return this.parameters;
}
public void setParameters(List<Parameter> parameters)
{
this.parameters = parameters;
}
}