相关疑难解决方法(0)

大对象可能无法在自动提交模式下使用

我有一个Spring应用程序,它在PostgreSQL数据库上使用Hibernate.我正在尝试将文件存储在数据库的表中.它似乎将行存储在文件中(我只是在EntityManager上使用persist方法),但是当从数据库加载对象时,我得到以下异常:

org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
Run Code Online (Sandbox Code Playgroud)

要加载数据,我正在使用MultipartFile瞬态属性,并在其setter中设置我想要保留的信息(byte [],fileName,size).我坚持的实体看起来像这个(我已经省略了其余的getter/setter):

@Entity
@Table(name="myobjects")
public class MyClass {

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
    @SequenceGenerator(name="sequence", sequenceName="myobjects_pk_seq", allocationSize=1)
    @Column(name="id")
    private Integer id;

    @Lob
    private String description;

    @Temporal(TemporalType.TIMESTAMP)
    private Date creationDate;

    @Transient
    private MultipartFile multipartFile;

    @Lob
    @Basic(fetch=FetchType.LAZY, optional=true)
    byte[] file;

    String fileName;

    String fileContentType;

    Integer fileSize;

    public void setMultipartFile(MultipartFile multipartFile) {
        this.multipartFile = multipartFile;
        try {
            this.file = this.multipartFile.getBytes();
            this.fileName = this.multipartFile.getOriginalFilename();
            this.fileContentType = this.multipartFile.getContentType();
            this.fileSize = ((Long) this.multipartFile.getSize()).intValue();
        } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

java postgresql hibernate jpa autocommit

24
推荐指数
6
解决办法
3万
查看次数

标签 统计

autocommit ×1

hibernate ×1

java ×1

jpa ×1

postgresql ×1