您的位置:首页 > 其它

EJB JPA实例

2015-04-30 14:12 344 查看

@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标记中的用法类似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: