1

一个休眠的 pojo,它有一个Lob字段,它的类型是byte[]

import javax.persistence.*;
import java.io.Serializable;
import static javax.persistence.AccessType.FIELD;

@Entity
@Access(FIELD)
@Table(name = "MYFILE")
public class MyFile implements Serializable {

    @Id
    @SequenceGenerator(name = "MYSEQ", sequenceName = "MYSEQ", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYSEQ")
    @Column(name = "ID")
    private Long id;


    @Column(name = "FILE_CONTENT")
    @Lob
    private byte[] fileContent;

    // getters and setters

}

然后我读取一个空文件并将其保存到数据库:

MyFile file = new MyFile();
file.setFileContent(new byte[0]);

sessionFactory.getCurrentSession().save(file);

我想在另一个事务中加载它:

MyFile myFile = sessionFactory.getCurrentSession().query("...").uniqueResult();
System.out.println(myFile.fileContent);

它打印:

null

我不明白为什么该领域fileContentnull,不是new byte[0]吗?

4

0 回答 0