@Entity
@Table(name = "ALERT")
@TableGenerator(name = "ALERT_GENERATOR", table = "GENERATOR_TABLE",pkColumnName="PRIMARY_KEY_COLUMN",
valueColumnName="VALUE_COLUMN",pkColumnValue="ALERT_PK",allocationSize=1)
public class Alert implements Serializable {
private static final long serialVersionUID = 1L;
/** 告警id*/
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "ALERT_GENERATOR")
@Column(name = "ALERTID", nullable = false)
private Long alertId;
public enum AlertStatus{
Untreated("未处理"),
Treating("处理中"),
Treated("已处理");
private String context;
public String getContext(){
return this.context;
}
private AlertStatus(String context){
this.context = context;
}
}
/** 告警名称 */
@Column(name = "NAME", length = 100, nullable = false)
private String name;
/** 告警创建时间 */
@Column(name = "CREATETIME")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/** 处理状态 */
@Column(name = "STATUS")
@Enumerated(EnumType.STRING)
private AlertStatus status = AlertStatus.Untreated;
}
l name属性表示该表主键生成策略的名称,它被引用在@GeneratedValue中设置的“generator”值中。
l table属性表示表生成策略所持久化的表名,例如,这里表使用的是数据库中的“tb_generator”。
l catalog属性和schema具体指定表所在的目录名或是数据库名。
l pkColumnName属性的值表示在持久化表中,该主键生成策略所对应键值的名称。例如在“tb_generator”中将“gen_name”作为主键的键值
l valueColumnName属性的值表示在持久化表中,该主键当前所生成的值,它的值将会随着每次创建累加。例如,在“tb_generator”中将“gen_value”作为主键的值
l pkColumnValue属性的值表示在持久化表中,该生成策略所对应的主键。例如在“tb_generator”表中,将“gen_name”的值为 “CUSTOMER_PK”。
l initialValue表示主键初识值,默认为0。
l allocationSize表示每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50。
l UniqueConstraint与@Table标记中的用法类似