-
hibernate search + spring 中出现的错误20
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans default-autowire="byName" default-lazy-init="true">
<!-- 数据源定义,使用Apache DBCP 连接池 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!--Hibernate SessionFatory-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop
key="hibernate.search.default.directory_provider">
org.hibernate.search.store.FSDirectoryProvider
</prop>
<prop key="hibernate.search.default.indexBase">
E:/seamindex
</prop>
</props>
</property>
<!--
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
-->
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean>
<!-- oracle 10 需要用的配置 -->
<bean id="lobHandler" lazy-init="true"
class="org.springframework.jdbc.support.lob.DefaultLobHandler" />
<!--Hibernate TransactionManager-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
hibernate配置文件:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping class="com.iflytek.police.ahga.search.domain.QbKssRyjbxxb" />
<mapping class="com.iflytek.police.ahga.search.domain.QbXtbaAj" />
<mapping class="com.iflytek.police.ahga.search.domain.QbXtbaJjdj" />
<mapping class="com.iflytek.police.ahga.search.domain.QbXtbaSary" />
<mapping class="com.iflytek.police.ahga.search.domain.QbZcBdqjdc" />
<mapping class="com.iflytek.police.ahga.search.domain.QbZcJsr" />
<mapping class="com.iflytek.police.ahga.search.domain.QbZcRhjdc" />
<mapping class="com.iflytek.police.ahga.search.domain.QbZcYshzry" />
<mapping class="com.iflytek.police.ahga.search.domain.RkPcsjcSyrk" />
<mapping class="com.iflytek.police.ahga.search.domain.RkLgyLk" />
<mapping class="com.iflytek.police.ahga.search.domain.RkZcZtry" />
</session-factory>
</hibernate-configuration>
java代码:
// 初始化索引
public void initCreateQbKssRyjbxxbIndex()throws Exception
{
session = super.getSession();
FullTextSession fullTextSession = Search.createFullTextSession(session);
org.hibernate.Query countuserquery = session.createQuery("select count(*) from RkPcsjcSyrk");
org.hibernate.Query maxquery = session.createQuery("select max(r.id) from RkPcsjcSyrk as r");
org.hibernate.Query minquery = session.createQuery("select min(r.id) from RkPcsjcSyrk as r");
Iterator c = countuserquery.iterate();
Iterator maxIt = maxquery.iterate();
Iterator minIt = minquery.iterate();
Long count = 0l;
Long maxId = 0l;
Long minId = 0l;
while(c.hasNext())
{
count = (Long)c.next();
System.out.println("count="+count);
}
while(maxIt.hasNext())
{
maxId = (Long)maxIt.next();
System.out.println("maxId="+maxId);
}
while(minIt.hasNext())
{
minId = (Long)minIt.next();
System.out.println("minId="+minId);
}
//session.close();
//sf.close();
//session = sf.openSession();
//fullTextSession = Search.createFullTextSession(session);
org.hibernate.Query userquery = null;
Long rownumber=100l;
Long start=minId;
Long end=minId+rownumber;
int i=0;
int yu=0;
while(end<=maxId)
{
userquery = session.createQuery("from RkPcsjcSyrk r where r.id between "+ start +"and " + (end-1));
long t1=System.currentTimeMillis();
//运行测试内容
tx = fullTextSession.beginTransaction();
tx.begin();
List<RkPcsjcSyrk> syrkList = userquery.list();
//System.out.println("size="+ syrkList.size());
for (RkPcsjcSyrk r : syrkList) {
i++;
System.out.println("i="+ i +" Id="+r.getId());
fullTextSession.index(r);
}
tx.commit();
session.clear();
session.evict(syrkList);
start+=rownumber;
end+=rownumber;
if(i/10000>yu){
System.out.println("i="+i);
System.out.println("start="+start);
System.out.println("end="+end);
long t2=System.currentTimeMillis();
System.out.println("时间="+(t2-t1));
System.out.println(new Date().toLocaleString());
yu = i/10000;
}
}
}catch(Exception e)
{
e.printStackTrace();
}
}
运行报错:
org.hibernate.HibernateException: Hibernate Search Event listeners not configured, please check the reference documentation and the application's hibernate.cfg.xml
at org.hibernate.search.util.ContextHelper.getSearchFactoryBySFI(ContextHelper.java:32)
at org.hibernate.search.util.ContextHelper.getSearchFactory(ContextHelper.java:18)
at org.hibernate.search.impl.FullTextSessionImpl.getSearchFactoryImplementor(FullTextSessionImpl.java:160)
at org.hibernate.search.impl.FullTextSessionImpl.index(FullTextSessionImpl.java:134)
at com.iflytek.police.ahga.search.service.SearchServiceManager.initCreateQbKssRyjbxxbIndex(SearchServiceManager.java:176)
at com.iflytek.police.ahga.search.service.SearchServiceManager.initCreateIndex(SearchServiceManager.java:53)
at com.iflytek.police.ahga.search.service.SearchServiceManager$$FastClassByCGLIB$$c2d64af7.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:714)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:652)
at com.iflytek.police.ahga.search.service.SearchServiceManager$$EnhancerByCGLIB$$86b32b65.initCreateIndex(<generated>)
at com.iflytek.police.ahga.search.controller.SearchController.initCreateIndex(SearchController.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:434)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:372)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:806)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
各位大佬 来帮帮我吧 我把所有的分都给他
问题补充:
fullTextSession.index(r); 执行这句时报的错。
问题补充:
try{
sf = new AnnotationConfiguration()
.configure(
new File(
"D:/work/workspace/hfga1/test/unit/com/iflytek/police/ahga/us/service/hibernate.cfg.xml"
//"D:/work/workspace/hfga/test/unit/com/iflytek/police/ahga/us/service/searchhibernate.cfg.xml"
))
.buildSessionFactory();
session = sf.openSession();
FullTextSession fullTextSession = Search.createFullTextSession(session);
Query countuserquery = session.createQuery("select count(*) from RkPcsjcSyrk");
Query maxquery = session.createQuery("select max(r.id) from RkPcsjcSyrk as r");
Query minquery = session.createQuery("select min(r.id) from RkPcsjcSyrk as r");
Iterator c = countuserquery.iterate();
Iterator maxIt = maxquery.iterate();
Iterator minIt = minquery.iterate();
Long count = 0l;
Long maxId = 0l;
Long minId = 0l;
while(c.hasNext())
{
count = (Long)c.next();
System.out.println("count="+count);
}
while(maxIt.hasNext())
{
maxId = (Long)maxIt.next();
System.out.println("maxId="+maxId);
}
while(minIt.hasNext())
{
minId = (Long)minIt.next();
System.out.println("minId="+minId);
}
session.close();
sf.close();
session = sf.openSession();
fullTextSession = Search.createFullTextSession(session);
Query userquery = null;
Long rownumber=100l;
Long start=minId;
Long end=minId+rownumber;
int i=0;
int yu=0;
while(end<=maxId)
{
userquery = session.createQuery("from RkPcsjcSyrk r where r.id between "+ start +"and " + (end-1));
long t1=System.currentTimeMillis();
//运行测试内容
tx = session.beginTransaction();
tx.begin();
List<RkPcsjcSyrk> syrkList = userquery.list();
System.out.println("size="+ syrkList.size());
for (RkPcsjcSyrk r : syrkList) {
i++;
//System.out.println("i="+ i +" Id="+r.getId());
fullTextSession.index(r);
}
tx.commit();
session.clear();
session.evict(syrkList);
start+=rownumber;
end+=rownumber;
if(i/10000>yu){
System.out.println("i="+i);
System.out.println("start="+start);
System.out.println("end="+end);
long t2=System.currentTimeMillis();
System.out.println("时间="+(t2-t1));
System.out.println(new Date().toLocaleString());
yu = i/10000;
}
}
}catch(Exception e)
{
e.printStackTrace();
}
session.close();
if (sf != null)
sf.close();
这样的在main函数里不报错,但放到spring mvc congtroller里就报错2008年7月01日 15:29
2个答案 按时间排序 按投票排序
-
应该是你的hibernate.hbm.xml配置中少了下面的IndexEventListenner
<hibernate-configuration>
<session-factory>
...
<event type="post-update"/>
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
<event type="post-insert"/>
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
<event type="post-delete"/>
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
</session-factory>
</hibernate-configuration>
所以你进行update,insert,delete时候会报你的错误
把这些配置加进去试试吧2008年7月02日 12:19
相关推荐
5. Spring的事务管理确保在整个过程中,如果发生任何错误,所有变更都将被回滚,保持数据的一致性。 此项目还可能涉及到权限控制、文件分类、搜索功能等,这些可以通过结合Spring Security来实现,提供用户认证和...
【标题】"基于Spring的Hibernate Search全文检索功能示例"主要展示了如何在Spring框架中集成Hibernate Search库,实现高效、灵活的全文检索功能。Hibernate Search是Hibernate ORM的一个扩展,它允许我们在Java应用...
5. **类型安全的API**:Hibernate Search提供了一套类型安全的API,可以直接在Java代码中定义搜索条件,减少错误并提升代码可读性。 6. **集成性**:与Hibernate ORM无缝集成,无需额外的配置或代码,即可快速启用...
标题中的“hibernate-search-orm-5.0.0.Alpha1.zip”指的是Hibernate Search ORM的一个早期版本,它是Hibernate框架的一个扩展,提供了在数据库中进行全文搜索和索引的功能。Hibernate是一个广泛使用的Java对象关系...
**Spring Data JPA** 是一个基于 **Java** 的开源...文档中可能还会涵盖错误处理、性能优化以及与其他 Spring 模块的协作等内容。在学习过程中,结合实际编程实践,能更好地理解和掌握 Spring Data JPA 的强大功能。
SSH,即Struts、Spring和Hibernate的组合,是Java企业级开发中常用的一种框架集成方案。这个项目旨在指导学生如何运用SSH框架构建一个简单的用户管理系统,涵盖了从项目创建到功能实现的全过程。 首先,创建新项目...
在当前的版本3.2.0中,它支持多种数据源如JPA、JDO、SQL、Lucene、Hibernate Search和MongoDB等。 文档从背景和原理开始介绍QueryDSL,然后详细讲解了如何利用QueryDSL对JPA、JDO和SQL等数据源进行查询。对于JPA和...
- 在Struts+Spring+Hibernate框架中,Action中的方法命名规则如下: | 方法 | 作用 | 方法名 | |-------|-------------|---------| | 增加 | 进入增加页面 | add() | | 修改 | 进入修改页面 | edit() | | 删除...
在这个"ssh跳页面增删改查"项目中,开发者使用这些技术来实现了一个基本的数据管理功能,包括浏览(List)、添加(Add)、删除(Delete)、修改(Update)和查询(Search)。下面我们将详细探讨这些知识点。 1. **...
- **Hibernate**:导入位于D:\ALL-Project\SSH\hibernate-search-4.2.0.Final-dist\hibernate-search-4.2.0.Final\dist\lib\required中的所有JAR包。 - **MySQL连接器**:在使用MySQL作为数据库的情况下,需要导入...
SSH(Struts2 + Spring + Hibernate)是一个常见的Java Web开发框架,用于构建高效、可扩展的企业级应用。这个仓库管理系统就是利用SSH框架实现的,旨在提升仓库管理的效率和准确性,实现信息化一体化。 1. **...
由于提供的文档内容显示存在大量OCR识别错误,部分文字无法辨认,使得直接解读文档内容存在困难。但考虑到您的要求,我将尽力根据给定的标题、描述和标签,结合SpringBoot技术栈的相关知识点,生成一个较为详尽的...
5. **集成第三方技术**:在"Spring Boot快速集成第三方技术详解"中,你可能会学到如何集成如MyBatis、Hibernate等ORM框架,Redis或Memcached作为缓存,Elasticsearch进行搜索,Docker容器化部署,以及Spring Cloud...
【基于S2SH的图书管理系统】是一个典型的Java Web应用程序,主要使用了Struts2、Spring和Hibernate这三大开源框架,合称为"S2SH"。这三个框架的集成为开发高效、可维护的Web应用提供了强大的支持。 **Struts2** 是...
在这个技术方案中,使用的技术栈包括Struts2.1.6、Spring、Hibernate、jQuery、Flexigrid、Thickbox以及MySQL数据库。Struts2作为MVC框架处理业务逻辑,Spring进行依赖注入和事务管理,Hibernate作为ORM工具简化...
在Spring环境中使用YAML暴露属性 iii. 23.6.3. Multi-profile YAML文档 iv. 23.6.4. YAML缺点 vii. 23.7. 类型安全的配置属性 i. 23.7.1. 第三方配置 ii. 23.7.2. 松散的绑定(Relaxed binding) iii. 23.7.3. @...
SSH,全称Struts2、Spring和Hibernate,是Java Web开发中常用的三大开源框架。它们各自负责不同的职责,共同构建了一个强大的、灵活的后端开发体系。 1. **Struts2**:作为MVC(Model-View-Controller)框架,...
实际项目中,还会涉及更多的细节,如错误处理、异常处理、性能优化等,这些都是构建高质量Java Spring项目不可或缺的部分。通过这个项目,开发者可以深入理解和实践Spring框架的强大功能,同时提升企业级应用开发的...
标题中的“基于SpringBoot2的java开源个人博客系统技术栈(jdk8+mysql5.7以上)”揭示了这个项目的核心技术栈,主要包括以下几个关键知识点: 1. **SpringBoot2**: SpringBoot是由Pivotal团队提供的全新框架,旨在...