jpa mysql lob_Jpa加载Lob字段报Unable to access lob stream异常

有一个主表需要加载一个子表,子表当中有一个字段为Lob用来保存图片。

此时Lob字段有数据,当我通过查询主表数据时,会报异常

Unable to access lob stream; nested exception is org.hibernate.HibernateException: Unable to access lob stream

具体操作就是通过

securityUserRepository.findByName("XXX")

获取某个User时,报错了。

因为是给接口返回数据的,SecurityUser中Location部分不能改成懒加载,所以具体怎么改,哪个好心人给看看呗,

谢谢了!

以下为主要部分的代码,SecurityUser是主表,Location是子表:

SecurityUser

public class SecurityUser implements Serializable {

private static final long serialVersionUID = 57212890345839147L;

@Id

private String id;

@Basic(optional = false)

@Column(length = 100, unique = true)

@NaturalId

private String name;

@ManyToMany(fetch = FetchType.EAGER)

@JoinTable(name = "SECURITY_USER_LOCATION", joinColumns = { @JoinColumn(name = "users_id") }, inverseJoinColumns = { @JoinColumn(name = "location_id") })

private Set<Location> locations = new HashSet<>();

}

Location

public class Location implements Serializable {

private static final long serialVersionUID = -4750805696249599768L;

@Id

@Column(name = "ID")

private String id;

@Lob

@Basic(fetch = FetchType.LAZY)

@Column(name = "IMAGE", nullable = true)

@JsonSerialize(using = ByteSerializer.class)

private byte[] image;

}

SecurityUserRepository

@Repository

public interface SecurityUserRepository extends JpaRepository<SecurityUser, String> {

public SecurityUser findByName(String name);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值