/**
*
*/
package org.hamster.weixinmp.dao.entity.menu;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hamster.weixinmp.config.WxConfig;
import org.hamster.weixinmp.dao.entity.base.WxBaseEntity;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
/**
* @author grossopaforever@gmail.com
* @version Aug 4, 2013
*
*/
@Entity
@Table(name = WxConfig.TABLE_PREFIX + "menu_btn")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxMenuBtnEntity extends WxBaseEntity {
@Column(name = "key_", length = 128, nullable = false)
private String key;
@Column(name = "url", length = 256, nullable = false)
private String url;
@Column(name = "name", length = 80, nullable = false)
private String name;
@Column(name = "type", length = WxConfig.COL_LEN_INDICATOR, nullable = false)
private String type;
@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "parent_button_id")
@Expose(serialize = false, deserialize = false)
private WxMenuBtnEntity parentButton;
@OneToMany(mappedBy = "parentButton")
@SerializedName("sub_button")
private List<WxMenuBtnEntity> subButtons;
}