hibernate注解映射枚举类型

@Entity
@Table(name = "t_info_student")
public class Material implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    @Column(updatable=false,name = "material_id")
    private String id;//学生id

    @Column(name = "name")
    private String name;

    @Enumerated(EnumType.ORDINAL)
    @Column(name = "gender")
    private Gender gender;
}
public class MaterialEnums {


    public enum Gender{
        男,女,保密;
    }
}

这种情况下同步到数据库是数值型,查询时返回的是枚举的string

若想网数据库中存储(男、女、保密)则需要改数据库中的对应字段类型和注解@Enumerated(EnumType.ORDINAL)为@Enumerated(EnumType.STRING)
一般情况下使用@Enumerated(EnumType.ORDINAL),可以节省存储空间,查询时的效率数值型比varchar型要高

猜你喜欢

转载自blog.csdn.net/qq_23934475/article/details/80526142
今日推荐