[@Lob] 指定持久属性或字段应作为大对象持久保存到数据库支持的大对象类型。 映射到数据库Lob类型时,便携式应用程序应使用Lob注释。 当元素集合值是基本类型时,Lob注释可以与Basic注释或ElementCollection注释一起使用。 Lob可以是二进制或字符类型。 Lob类型是根据持久性字段或属性的类型推断的,除了字符串和基于字符的类型以外,默认为Blob。 String 类的默认值 为 longtext byte[] Image File 默认值 为 longblob @Lob @Basic(fetch=LAZY) @Column(name="REPORT") protected String report; @Lob @Basic(fetch=LAZY) @Column(name="EMP_PIC", columnDefinition="BLOB NOT NULL") protected byte[] pic;
package sun.rain.amazing.javax.anno.domain; import lombok.Data; import javax.persistence.*; import java.awt.*; import java.io.File; /** * @author sunRainAmazing */ @Entity @Data public class UserLob { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Lob @Basic(fetch=FetchType.LAZY) private String report; @Lob @Basic(fetch=FetchType.LAZY) @Column(name="emp_pic", columnDefinition="BLOB NOT NULL") private byte[] pic; @Lob @Basic(fetch=FetchType.LAZY) private byte[] pict; @Lob @Basic(fetch=FetchType.LAZY) @Column(columnDefinition="text NOT NULL") private String content; @Lob @Basic(fetch=FetchType.LAZY) private Image img; @Lob @Basic(fetch=FetchType.LAZY) private File fileTxt; }
/* CREATE TABLE `user_lob` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` text NOT NULL, `emp_pic` blob NOT NULL, `report` longtext, `file_txt` longblob, `img` longblob, `pict` longblob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 */