实体bean的开发

 

涉及的注解

@Entity(name="")  name属性指明了JPQL中使用的实体名

@Table(name="xxx")

 

@Id

@GeneratedValue(strategy=GenerationType.AUTO)

GenerationType.TABLE       //会创建一个表 具有序列名和对应值两个字段,易于数据库移植

GenerationType.SEQUENCE   //支持序列的数据库 如 Oracle

GenerationType.IDENTITY        //使用ID自动增长 如mysql

GenerationType.AUTO         //  由持久化提供器根据数据库的不同自动决定以何种方式生成主键

@Column(nullable=false,length=10,unique=false,name="",insertable=true,updatable=true) 

name指明映射的字段名

insertable和updatable指明是否让该字段出现在SQL INSERT和SQL UPDATE语句中

@Transient指明该字段不会被持久化

@Enumerated(EnumType.STRING)    枚举类型的映射,及映射到数据库内的数据类型

@Lob 映射大数据

byte[] Byte[] Serializable时数据库中映射为Blob类型,char[] Character[] String时为Clob类型

@Basic(fetch=FetchType.LAZY)默认是立即    FetchType.EAGER

注解延时加载,懒加载,特别是大数据字段时很有用

@Temporal(value=TemporalType.DATE)

对于时间类型很严格处理时,指明是映射为date,time,timestamp

实体属性也可以是 普通可序列化的java对象

@Embedded当不需要将整个对象映射到数据库,只希望映射它的字段可以使用

 

表名和列名不要使用数据库的保留字段如 order group

对于实体bean建议重写equals和hashcode方法以使用集合时,可以区别实体的不同

 

基于JPA的ID生成策略

 @GeneratedValue

AUTO

TABLE

IDENTITY

SEQUENCE

 

你可能感兴趣的:(实体bean的开发)