实体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

你可能感兴趣的:(oracle,sql,bean,mysql,jpa)