注解@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>