Java 无法访问findByDescriptionContaining(字符串描述)的lob流
有一个简单的字符串参数搜索。该页面由数据库查询表和简单表单输入+按钮组成。搜索斜杠过滤器是通过存储库和控制器中的插件实现的。模板引擎是Freemarker 但是,如果搜索输入包含现有数据,它会抛出一个异常嵌套的异常是org.hibernate.HibernateException:无法访问lob流。空数据和不存在数据可以正常工作,分别显示没有查询或全部查询 模型 存储库Java 无法访问findByDescriptionContaining(字符串描述)的lob流,java,spring,Java,Spring,有一个简单的字符串参数搜索。该页面由数据库查询表和简单表单输入+按钮组成。搜索斜杠过滤器是通过存储库和控制器中的插件实现的。模板引擎是Freemarker 但是,如果搜索输入包含现有数据,它会抛出一个异常嵌套的异常是org.hibernate.HibernateException:无法访问lob流。空数据和不存在数据可以正常工作,分别显示没有查询或全部查询 模型 存储库 @Repository public interface DBFileRepository extends JpaReposi
@Repository
public interface DBFileRepository extends JpaRepository<DBFile, String> {
List<DBFile> findByDescriptionContaining(String description);
}
控制器
@Autowired
private DBFileRepository dbFileRepository;
@GetMapping("/search")
public String search(@RequestParam(required = false, defaultValue = "") String search, Model model) {
Iterable<DBFile> dbFiles;
if (search != null && !search.isEmpty()) {
dbFiles = dbFileRepository.findByDescriptionContaining(search);
} else {
dbFiles = dbFileRepository.findAll();
}
model.addAttribute("dbFiles", dbFiles);
return "search";
}
模板
<@c.page>
<form method="get">
<div class="form-group">
<input type="text" class="form-control" name="search" value="${search?ifExists}" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Search</button>
</div>
</form>
<div class="table">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<#list dbFiles as dbFile>
<tr>
<td>${dbFile.fileName}</td>
<td>${dbFile.description}</td>
</tr>
</#list>
</tbody>
</table>
</div>
</@c.page>
日志
当您使用JpaRepository的findBy match时,后缀必须是您试图获取的字段,例如:
@Repository
public interface DBFileRepository extends JpaRepository<DBFile, String> {
List<DBFile> findByDescription(String description);
}
当您使用JpaRepository的findBy match时,后缀必须是您试图获取的字段,例如:
@Repository
public interface DBFileRepository extends JpaRepository<DBFile, String> {
List<DBFile> findByDescription(String description);
}
解决方案:
在添加spring.jpa.properties.hibernate.jdbc.lob.non_context_creation=true之后,我得到了另一个异常-org.postgresql.util.PSQLException:在自动提交模式下可能无法使用大型对象
但后来我找到了一个解决方案,对我来说绝对有效:
解决方案:
在添加spring.jpa.properties.hibernate.jdbc.lob.non_context_creation=true之后,我得到了另一个异常-org.postgresql.util.PSQLException:在自动提交模式下可能无法使用大型对象
但后来我找到了一个解决方案,对我来说绝对有效:
将@Transactional添加到您的存储库可能会解决我的提交问题
@Repository
@Transactional
public interface DBFileRepository extends JpaRepository<DBFile, String> {
List<DBFile> findByDescription(String description);
}
将@Transactional添加到您的存储库可能会解决提交问题
@Repository
@Transactional
public interface DBFileRepository extends JpaRepository<DBFile, String> {
List<DBFile> findByDescription(String description);
}
可能重复的@Compass这些提示都不起作用,不幸的是可能重复的@Compass这些提示都不起作用,不幸的是为什么?我需要查询的不完全匹配,所以我使用了JPA上的官方文档,但仍然按照您的建议进行了尝试,并得到了相同的例外情况stacktrace中的原因是:java.sql.SQLFeatureNotSupportedException:Method org.postgresql.jdbc.PgConnection.createClob尚未实现。,应用此解决方案github Postgresql项目为什么?我需要查询的不完全匹配,所以我使用了JPA上的官方文档-但仍然按照您的建议进行了尝试,并得到了相同的异常stacktrace中的原因是:java.sql.SQLFeatureNotSupportedException:Method org.postgresql.jdbc.PgConnection.createClob尚未实现。应用此解决方案github postgresql项目