`
wangjianjun852
  • 浏览: 49848 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

compass+ssh2集成 hibernategps问题

阅读更多
配置信息
bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="com.wjj" />

<!--
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">


<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/spring" />
<property name="username" value="root" />
<property name="password" value="wjj" />
</bean>
-->

<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>

<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<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>



<bean id="sf"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--
<property name="annotatedClasses">
<list>
<value>com.wjj.model.User</value>
<value>com.wjj.model.Log</value>
</list>
</property>
-->
<property name="packagesToScan">
<list>
<value>com.wjj.bbsport.domain</value>

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sf"></property>
</bean>

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sf" />
</bean>

<aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * com.wjj.bbsport.service.*.*(..))" />
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config>

<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="getScrollData" read-only="true" />
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="ke" propagation="REQUIRED"/>
<tx:method name="UpdateStyle" propagation="REQUIRED"/>
<tx:method name="edit" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>

<tx:method name="setVisible" propagation="REQUIRED"/>
<tx:method name="edit" propagation="REQUIRED"/>
<tx:method name="Update*" propagation="REQUIRED"/>
<tx:method name="changeCommon" propagation="REQUIRED"/>
<tx:method name="changeVisible" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!--
<bean id="myTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
   <property name="sessionFactory"> 
     <ref local="sf"/> 
   </property>
</bean>
  --> 
<bean id="compassTemplate" 
        class="org.compass.core.CompassTemplate"> 
        <property name="compass" ref="compass" /> 
</bean>
  
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<!-- 指定映射类方式 -->
<property name="classMappings">
<list>
<value>com.wjj.bbsport.domain.ProductInfo</value>
<value>com.wjj.bbsport.domain.ProductStyle</value>
<value>com.wjj.bbsport.domain.ProductType</value>
<value>com.wjj.bbsport.domain.Brand</value>
</list>
</property>
<property name="compassSettings">
<props>
<prop key="compass.engine.connection">file://e:/index</prop>
<prop key="compass.engine.highlighter.default.formatter.simple.pre"><![CDATA[<font color='red'>]]></prop>
<prop key="compass.engine.highlighter.default.formatter.simple.post"><![CDATA[</font>]]></prop>
<prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop>
</props>
</property>
<property name="transactionManager" ref="txManager"/> 
</bean>

<bean id="hibernateGpsDevice" class="org.compass.gps.device.hibernate.HibernateGpsDevice"> 
    <property name="name" value="hibernateDevice"/> 
    <property name="sessionFactory" ref="sf"/> 
    <property name="mirrorDataChanges" value="true"/>  
    <!--
    <property name="nativeExtractor"><bean class="org.compass.spring.device.hibernate.SpringNativeHibernateExtractor" /></property>
    -->
</bean>
 
<!-- CompassGps为CompassGpsDevice提供Compass对象,他们一起为程序提供索引的实时更新 -->
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop">
<property name="compass" ref="compass" />
<property name="gpsDevices">  
        <list> 
            <ref bean="hibernateGpsDevice" /> 
        </list>  
    </property> 
</bean>

</beans>



Hibernate: insert into ProductInfo (baseprice, brandid, buyexplain, clickcount, code, commend, createdate, description, marketprice, model, name, sellcount, sellprice, sexrequest, typeid, visible, weight) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: select producttyp0_.typeid as typeid12_1_, producttyp0_.name as name12_1_, producttyp0_.note as note12_1_, producttyp0_.parentid as parentid12_1_, producttyp0_.visible as visible12_1_, producttyp1_.typeid as typeid12_0_, producttyp1_.name as name12_0_, producttyp1_.note as note12_0_, producttyp1_.parentid as parentid12_0_, producttyp1_.visible as visible12_0_ from ProductType producttyp0_ left outer join ProductType producttyp1_ on producttyp0_.parentid=producttyp1_.typeid where producttyp0_.typeid=?
Hibernate: select brand0_.code as code0_0_, brand0_.logopath as logopath0_0_, brand0_.name as name0_0_, brand0_.visible as visible0_0_ from Brand brand0_ where brand0_.code=?
17:45:11,812 ERROR org.hibernate.AssertionFailure:45 - an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: null id in com.wjj.bbsport.domain.ProductInfo entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
at org.compass.spring.transaction.SpringSyncTransaction.doCommit(SpringSyncTransaction.java:140)
at org.compass.core.transaction.AbstractTransaction.commit(AbstractTransaction.java:46)
at org.compass.core.CompassTemplate.execute(CompassTemplate.java:131)
at org.compass.core.CompassTemplate.execute(CompassTemplate.java:112)
at org.compass.gps.impl.SingleCompassGps.executeForMirror(SingleCompassGps.java:166)
at org.compass.gps.device.hibernate.lifecycle.HibernateEventListener.onPostInsert(HibernateEventListener.java:99)
at org.hibernate.action.EntityIdentityInsertAction.postInsert(EntityIdentityInsertAction.java:113)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:89)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:697)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:694)
at com.wjj.bbsport.dao.BottomDAOImpl.save(BottomDAOImpl.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at




情况:
  我在修改一个产品的时候, compass 拦截了更新方法, 并建了一个index...
  但是,问题发生在当我新建一个产品的时候, 就报上面的异常了。  查了二天了。 网上有的说是hibernate版本或其它一系列的问题。。 我一一试了。 但是没有效果。。 
   现在求大佬们给点解题思路, 谢谢。

因为并非是商业项目所以本人将源码奉上.


操作流程如下:
  先输入
http://localhost:8888
登陆一下用户和密码

本人有个test 包下面有个testbuyer 的junit类。 可以运行一下, 就可以往数据库里面插入用户了。
然后输入
http://localhost:8888/control/center/default
点击
产品管理->产品管理  然后录入信息点保存


源码请到
分享到:
评论

相关推荐

    Compass+SSH搜索引擎简单项目

    【SSH+Compass搜索引擎简单项目】是一个基于Struts2(S),Hibernate(H)和Spring(S)的Java Web应用程序,结合了Compass搜索引擎库,用于实现对数据库中两个表的高效检索功能。这个项目旨在提供一个清晰易懂的...

    compass+ibatis+spring+struts2整合开发

    compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发

    Compass+ lucene 通用代码(脱离数据库)

    《Compass+Lucene:构建高效全文搜索引擎》 在信息技术高速发展的今天,数据量的爆炸式增长使得传统的数据库查询方式面临着挑战。此时,全文搜索引擎以其快速、高效的特性,成为了处理大量非结构化文本数据的首选...

    Compass与ssh框架整合

    这篇博客文章“Compass与ssh框架整合”将深入探讨如何将Compass集成到SSH框架中,以实现更高效的数据检索。 首先,我们需要理解SSH框架的核心组件: 1. **Spring**:是一个全面的开源应用框架,提供了依赖注入(DI...

    compass+lucene

    在实际应用中,`compass+lucene`的组合使得开发者可以轻松地在Java应用中添加全文搜索功能,而无需深入了解搜索引擎的复杂细节。通过 Compass 的 ORM 集成,开发者可以直接在存储在数据库中的对象上执行全文搜索,这...

    Lucene+compass+spring+jdbc+庖丁的一个例子

    标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...

    struts2+spring2.5+hibernate3.26+compass2.1搜索引擎简单实现(无jar包)

    Struts2、Spring、Hibernate和Compass是Java Web开发中常用的四大框架,它们各自负责不同的职责,协同工作可以构建高效、灵活的企业级应用。这里我们主要讨论如何将这些技术结合在一起,实现一个简单的搜索引擎功能...

    ssh+compass实现站内搜索分页.rar

    通过以上步骤,你可以在SSH框架下成功集成Compass实现站内搜索分页。这一过程涉及到Java Web开发的多个层面,包括MVC架构、数据库操作、全文检索以及用户体验设计。熟练掌握这些技能将有助于构建高效且功能丰富的Web...

    COMPASS+spring构建自己的搜索引擎.pdf

    标题提及的"COMPASS+spring构建自己的搜索引擎"是关于如何使用Compass搜索引擎框架与Spring框架集成,构建一个自定义的全文搜索引擎。Compass是一个开源的搜索引擎库,它提供了与ORM框架(如Hibernate)的集成,使得...

    [sass+compass+susy+源码实战]css设计师指南

    【Sass + Compass + Susy:CSS 设计师的实战指南】 Sass 是一个 CSS 预处理器,它扩展了 CSS 的功能,让编写样式表变得更加高效和模块化。通过使用变量、嵌套规则、混合(mixins)、函数等特性,Sass 能够帮助...

    使用compass+lucene实现简单的全文检索功能

    2. **配置 Compass**:创建一个 Compass 配置文件,定义搜索引擎的连接参数,例如目录或数据库的位置,以及要索引的数据源。还可以设置分析器(Analyzer),用于处理文本数据。 3. **创建索引**:使用 Compass 提供...

    SSH2+compass的模糊查询

    关于ssh+compass的源码仿写,功能简单,可以参考研究。

    SSH+compass

    SSH+compass整合的小例子,导入即可运行,数据库用的是mysql,用的都是注解技术,代码良好,dao层用了江南白衣的思想,根据泛型和反射封装,可以做基类,里面有注册和查询的小例子,基本可以在此基础上继续开放你所...

    SSH2+compass2.2搜索实例(完整工程)

    通过研究这个SSH2+Compass2.2搜索实例,开发者可以学习到如何在J2EE应用中整合多个框架以实现复杂的功能,如搜索引擎集成。此外,还会了解如何使用MyEclipse这样的IDE进行开发,以及如何管理和部署SQL数据库。这是一...

Global site tag (gtag.js) - Google Analytics