@column 大字段和瞬时字段
来源:互联网 发布:结婚照相册制作软件 编辑:程序博客网 时间:2024/05/13 12:24
大字段
@Lob //对应Blob字段类型
@Column(name = "PHOTO")
private Serializable photo;
@Lob //对应Clob字段类型
@Column(name = "DESCRIPTION")
private String description;
@Temporal注释用来指定java.util.Date或java.util.Calender属性与数据库类型date、time或timestamp中的那一种类型进行映射。
@Temporal(value=TemporalType.TIME)
属性映射
如果不想让一些成员属性映射成数据库字段,可以使用@Transient注释进行标注。
@Transient
private Stringsex;
枚举对象
如果想映射枚举对象到数据库就需要使用@Enumerated注释进行标注。
@Enumerated(EnumType.STRING)
@Column(name="address_type")
private AddressTypetype;//地址类型
有时可能需要存放一些文本或大文本数据进数据库,JDBC使用java.sql.Blob类型存放二进制数据,
java.sql.Clob类型存放字符数据,这些数据都是非常占内存的,
@Lob注释用作映射这些大数据类型,当属性的类型为byte[],Byte[]或java.io.Serializable时,@Lob注释映射为数据库的Blob类型,当属性的类型为char[],Character[]或java.lang.String时,@Lob注释将映射为数据库的Clob类型。
对于加了@Lob注释的大数据类型,为了避免每次加载实体时占用大量内存,有必要对该属性进行延时加载,这是需要用到@Basic注释。@Basic注释的定义:FetchType属性指定是否延时加载,默认为立即加载,optional属性指定在生成数据库结构时字段能否为null。
@Lob
@Basic(fetch=FetchType.LAZY)
@Column(name="info")
private Stringcontent;
其他:
columnDefinition属性的使用:
1.columnDefinition可以指定创建表时一些SQL语句,比如这里可以一次性指定,varchar长度128,且不能为空
@Table(name = "CUSTOMERS")@Entitypublic class Customer { @Column(name = "ID") @GeneratedValue(strategy = GenerationType.AUTO) @Id private Integer id; @Column(name = "Name") private String name; @Column(name = "Email",columnDefinition="varchar(128) not null") private String email; @Column(name = "Age") private int age; ......}
当然,相同的结果可以通过nullable和length属性结合实现2.columnDefinition属性的特殊使用:
编程语言中字符串一般都用String表示,但是数据库中varcahr数值类型有长度限制,一旦需要大文本,则需要text数值类型
但是String类型默认映射的数值类型是varchar,columnDefinition可以进行额外指定
@Table(name = "CUSTOMERS")@Entitypublic class Customer { @Column(name = "ID") @GeneratedValue(strategy = GenerationType.AUTO) @Id private Integer id; @Column(name = "Name") private String name; @Column(name = "Email", nullable = true, length = 128) private String email; @Column(name = "Age") private int age; @Column(name = "Remark",columnDefinition="text") private String remark; ......}
- @column 大字段和瞬时字段
- 图片和大字段上传
- 读取和写入大字段(Oracle,JDBC)
- Oracle的大字段类型和Mysql的大字段类型对比
- 字符串字段转换为大字段类型(包括字段的增删改)
- ASP中对大字段的存取AppendChunk和GetChunk
- VB中对大字段的存取AppendChunk和GetChunk
- oracle中的大字段clob和blob操作
- 重组表空间(转移大字段表和索引)
- oracle如何导出Blob和clob大字段
- java中大字段
- Oracle中的大字段
- .net大字段操作
- CLOB大字段存储
- jdbc处理大字段
- oracle大字段
- 映射大字段Blob
- Oracle的大字段
- 4456: [Zjoi2016]旅行者
- VO、DTO、DO、PO的概念、区别和用处
- chrome 无法打开 应用程序无法启动,应用程序的并行配置不正确
- 服务端开发小感
- JS组件系列——Bootstrap Select2组件使用小结
- @column 大字段和瞬时字段
- Morse理论:拓扑不变性特征匹配原理
- My Blog,我的2016
- 96秒sql语句优化
- 【随笔】2016.12.21
- JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)
- openssl-1.1.0c在linux 64位下的升级方法
- 简单实现Vue的observer和watcher
- JS组件系列——Form表单验证神器: BootstrapValidator