JPA注解:
JPA全称Java Persistence API.JPA通过JDK 5.0注解或 XML描述对象-关系表的映射关系,并将运行期的实体对 象持久化到数据库中。Sun引入新的JPA ORM规范出于两 个原因:其一,简化现有Java EE和Java SE应用开发工作; 其二,Sun希望整合ORM技术,实现天下归一。 JPA由EJB 3.0软件专家组开发。 序号 javax.persistence注解 说明 1. @Table(name="tb_item_cat") 标识类对应的表 2. @Id 主键 3. @GeneratedValue (strategy=GenerationType.IDENTITY) 自增 4. @Column(name="parent_id") 当属性和字段不一致,设置映射关系 在POJO实体对象上加JPA(Java Persistence API)注解, 实现类和数据库表之间的映射。 未指定的驼峰规则,在mybatis-config.xml中配置 <setting name="mapUnderscoreToCamelCase" value="true"/>。 1)表名默认使用类名,按驼峰规则,下划线后字母自动大写,如UserInfo对应表名user_info。 2)当表名和类名不对应时,使用@Table(name="tableName")进行指定。 3)属性和字段名不对应时,使用@Column(name="fieldName")进行指定。 4)当非表的属性时,使用@Transient可以忽略此属性。 5)必须设置主键@Id,可以有多个属性设置@Id,作为联合主键。默认情况下,如果没有设置主键,所有字段作为一个联合主键,这种效率极低。 6)实体类可以继承使用,注解也将继承。 7)基于基本类型,如int作为实体字段时会有默认值0,而且无法消除,所以实体类中建议不要使用基本类型。 8)主键策略,支持序列、UUID、主键自增三种方式,其中序列和UUID可以配置多个,主键自增只能配置一个。 @GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增长策略 @GeneratedValue(strategy=GenerationType.AUTO) 也是默认策略, 即写成@GeneratedValue也可。 类似于hibernate的native策略,生成方式取决于底层的数据库。 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_u") 指定“序列”策略,使用于Oracle。其中generator表示序列的名字。 @GeneratedValue(generator = "UUID") 可以用于任意字符串类型长度超过32位的字段。
异常:@GeneratedValue()中少填了strategy=GenerationType.IDENTITY造成的异常
异常: