@Entity
标注这是一个实体类
@Table(name = “Person”)
标注当前实体类与表的映关系
@Id
标注当前属性为表的主键
@GeneratedValue
为一个实体生成一个唯一标识的主键,有两个属性,分别是strategy和generator。
其中generator属性的值是一个字符串,默认为”“,其声明了主键生成器的名称。
其中strategy为四种主键生成策略,其被定义在枚举类GenerationType中存在,其中有四种值
GenerationType.SEQUENCE 代表序列(sequence)增长,适用Oracle
GenerationType.IDENTITY 代表主键自增长,适用Mysql
GenerationType.AUTO 主键生成交给持久化引擎
.GenerationType.TABLE 具体请见 详情
@column
标记表示所持久化属性所映射表中的字段
该注释的属性定义如下:
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface Column {
String name() default “”; //字段名
boolean unique() default false; //是否唯一
boolean nullable() default true; //是否为空
boolean insertable() default true;//是否需要插入该字段的值。
boolean updatable() default true;//是否需要更新该字段的值
String columnDefinition() default “”;//
String table() default “”;
int length() default 255;
int precision() default 0;
int scale() default 0;
}
用法见详情
@OneToOne
配置一对一
常用属性cascade(级联)常用值CascadeType.ALL,级联的新建,删除,刷新,更新,四个值
使用详情
@JoinColumn
配置关联的时候常用,通常配置在主动关系的那一方
@OrderBy
value排序元素的语法orderby_list如下所示:
orderby_list :: = orderby_item [,orderby_item] *
orderby_item :: = [property_or_field_name] [ASC | DESC]
具体使用见详情
注意@OrderBy是在内存中排序,在db中不见得是有序的,@OrderColumn是数据在db中就是有序的