【发布时间】:2014-04-04 15:42:47
【问题描述】:
我正在尝试使用 FullTextEntityManager(和 Spring),但出现“会话已关闭”异常。我第一次可以很好地查询,但是第二次抛出异常。这是我的配置:
@Service
@Transactional(readOnly = true, propagation=Propagation.SUPPORTS)
public class SearchServiceImpl extends BaseService implements SearchService {
public List<StrainSearchResultsListItem> advancedSearch(Pageable page,String species) {
return searchRepository.advancedSearch(page, species);
}
回购实施:
@Repository
@Transactional(readOnly = true)
public class SearchRepositoryImpl implements SearchRepository {
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
protected FullTextEntityManager getFullTextEntityManager() {
if (fullTextEntityManager == null) {
fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
}
return fullTextEntityManager;
}
当我第二次调用 fullTestQuery.getResultList() 时,它会抛出“会话已关闭”异常。
FullTextQuery fullTextQuery =
getFullTextEntityManager()
.createFullTextQuery(booleanQuery, Strain.class);
fullTextQuery.getResultList()
感谢任何想法。
谢谢
【问题讨论】:
-
您可以发布您的实体代码吗?似乎在加载任何惰性依赖项之前,您的会话已关闭,因此出现此错误。