【发布时间】:2022-12-18 00:29:52
【问题描述】:
当我使用 @lob 作为编码文件同时将我的实体与数据库映射并使用 save() 方法插入数据时,我能够将编码文件正确插入我的 Postgres 数据库中
@Lob
@Column(name="data", columnDefinition = "text")
private String fileContent;
当我尝试使用插入本机查询插入相同的编码文件时,它没有正确插入。
@Override
@Transactional
public void insertEncodeData(CustomerData customer) {
entityManager.createNativeQuery("insert into customer (name,data) VALUES (?,?)")
.setParameter(1, customer.getName())
.setParameter(2, customer.getData())
.executeUpdate();
}
编码后的 base64 文件不以 blob 格式存储,它被认为是简单的字符串。谁能帮我这个?
尝试 1
@Override
@Transactional
public void insertEncodeData(CustomerData customer) {
Clob lob = entityManager.unwrap(Session.class).getLobHelper().createClob(customer.getData());
entityManager.createNativeQuery("insert into customer (name,data) VALUES (?,?)")
.setParameter(1, customer.getName())
.setParameter(2, lob)
.executeUpdate();
}
我已将编码文件转换为 clob 并尝试插入它,但仍然无法正常工作。
先感谢您!
【问题讨论】:
标签: java postgresql spring-boot hibernate spring-data-jpa