@Entity ----表示这个JavaBean是一个jpa实体)
@Table(name="person") ---- 定义表的名称是person,若不加这个注解则表的名称与这个类同名
@Id ----定义主键
@GenerateValue(strategy=GenerationType.AUTO)
---- 提供主键生成策略,auto表示默认策略,会在以下三种中选择一种,可简写@GenerateValue
GenerationType.IDENTITY ---- 主键自增长
GenerationType.TABLE ---- 使用一个特定的数据库表格来保存主键
GenerationType.SEQUENCE
---- 在某些数据库中,比如Oracle,不支持主键自增长,提供了一种叫做"序列(sequence)"的机制生成主键
@Column(length=10,nullable="false",name="personName")
---- 定义表中列字段的长度,是否为空(默认可空),列名(默认为属性名)。可以写在属性上,也可以下载这个属性的getter方法上
@Temporal(TemporalType.DATE) ---- 加在类型为Date的属性上 日期格式 "yyyy-mm-dd"
@Temporal(TemporalType.TIME) ---- "HH:MM:ss"
@Temporal(TemporalType.TIMESTAMP) ---- "yyyy-mm-dd HH:MM:ss"
@Enumerated(EnumeType.STRING) ---- 保存枚举类型的实际值,要加@Columm设置非空
EnumeType.ORDINAL ---- 枚举类型的索引值,从0开始
@Lob ---- 声明数据库字段为大文本(LONGTEXT)
---- 属性类型为字节数组byte[],数据库字段为(LONGBLOG)
@Basic(fetch=FetchType.LAZY) ---- 延迟加载,只有在调用这个属性的getter方法时才把数据加载到内存中
@Transient ---- 这个属性不作为持久化字段
@Basic(fetch=FetchType.LAZY) ----延迟加载(主要是对大文件,需要的时候才加载到内存)