注解@Column实现实体类到数据库字段的映射解决映射过程中的type#[]类型错误
1、@GeneratedValue实现id的自增长
实体类中:
@Id @GeneratedValue(strategy = GenerationType.AUTO) private int id;
xml文件中:(constraints中放的是字段的属性,primaryKey="true"表示该字段为主键,nullable="false"表示该字段不可为空)
<createTable tableName="tablename"> <column name="id" type="int" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> </createTable>
2、@Column映射数据库的字段
实体类:(name里面的字段名要和xml里面的对应,如果有下划线比如ztb_id,就一定要写,xml里面不能驼峰命名;如果,没有下划线,那么name可以不写)
@Column(name = "ztb_id", nullable = false) private int ztbId; @Column(length = 40, nullable = false) private String fkkk;
xml文件中:
<column name="ztb_id" type="int"> <constraints nullable="false"/> </column> <column name="fkkk" type="nvarchar2(40)"> <constraints nullable="false"/> </column>
3、@Nationalized支持中文
实体类:
@Nationalized @Column(length = 40, nullable = false) private String fkkk;
4、@Enumerated支持枚举类型
枚举类:
import java.io.Serializable; public enum ListType implements Serializable { DAXIU, GXGZ }
实体类:
@Enumerated(EnumType.STRING) @Column(name = "list_type", length = 10, nullable = false) private ListType listType;
xml:
<column name="list_type" type="varchar2(10)"> <constraints nullable="false"/> </column>
5、@Column(columnDefinition)解决映射过程中的type#[]类型错误。String类型默认映射的数值类型是varchar,columnDefinition可以进行额外指定(有时候编译运行会出现类型错误,所以就需要)
实体类:
@Column(nullable = false, columnDefinition = "char") private String qksj;
xml:
<column name="qksj" type="char(10)"> <constraints nullable="false"/> </column>