Hibernate针对Java基本类型字段的映射策略总结

来源:互联网 发布:乾隆红楼梦 知乎 编辑:程序博客网 时间:2024/06/05 15:34

本文使用的数据库测试环境为:

  • MySQL:Windows 10x64 5.7.12-log
  • SQL Server:Windows 10x64 SQL Server 2012
  • Oracle:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

由于工程需要支持多种数据库,自然而然就想到使用Hibernate框架,但是不同的数据库提供的数据类型是不同的,Hibernate内置了针对不同数据库数据类型的映射策略。使用下面的实体类进行映射测试:

@Entity(name = "user")@Table(name = "user")public class User implements Serializable {    private static final long serialVersionUID = 8849870114127659929L;    @Id    private Long id;    @Column    private String name;    @Column    @Lob    private String comment;    @Column    private Integer age;    @Temporal(TemporalType.DATE)    private Date day;    @Temporal(TemporalType.TIME)    private Date time;    @Temporal(TemporalType.TIMESTAMP)    private Date mark;    private Boolean male;    private Double tall;    private Float size;}

下面是针对Java基本类型的映射总结:

Java类型 MySQL SQL Server Oracle String varchar(255) varchar(255) VARCHAR2(30) String(@Lob) longtext varchar(MAX) CLOB(4000) Integer int(11) int NUMBER(10) Long bigint(20) bigint NUMBER(19) Double double float FLOAT(126) Float float float FLOAT(126) Boolean bit(1) bit NUMBER(1) Date(TemporalType.DATE) date date DATE(7) Date(TemporalType.TIME) time time(7) DATE(7) Date(TemporalType.TIMESTAMP) datetime datetime2(7) TIMESTAMP(6)

0 0