【问题标题】:Spring 3.1.1 + Hibernate 4.1.0 - Not indexing?Spring 3.1.1 + Hibernate 4.1.0 - 没有索引?
【发布时间】:2012-03-25 17:41:11
【问题描述】:

新元素的索引不适用于 Hibernate + Spring。日志中不显示任何错误。

Hibernate 和 Spring 版本:

  • 休眠 4.1.0.Final
  • 休眠搜索 4.0.0.Final
  • 休眠 EntityManager 4.0.1.Final
  • 春季 3.1.1.RELEASE

Spring-context.xml

<bean id="dataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
    <property name="targetDataSource">
        <ref local="mainDataSource" />
    </property>
</bean>

<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
    <property name="driverClass" value="${jdbc.driver}" />
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>

    <property name="idleConnectionTestPeriodInMinutes" value="${jdbc.idleConnectionTestPeriodInMinutes}"/>
    <property name="idleMaxAgeInMinutes" value="${jdbc.idleMaxAgeInMinutes}"/>      
    <property name="maxConnectionsPerPartition" value="${jdbc.maxConnectionsPerPartition}"/>
    <property name="minConnectionsPerPartition" value="${jdbc.minConnectionsPerPartition}"/>
    <property name="partitionCount" value="${jdbc.partitionCount}"/>
    <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>                              
    <property name="statementsCacheSize" value="${jdbc.statementsCacheSize}"/>
    <property name="releaseHelperThreads" value="${jdbc.releaseHelperThreads}"/>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">none</prop>

            <prop key="hibernate.connection.release_mode">auto</prop>
            <prop key="hibernate.auto_close_session">true</prop>


            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.use_second_level_cache">true</prop>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>

            <!-- Hibernate search - lucene -->
            <prop key="hibernate.search.default.directory_provider">filesystem</prop>
            <prop key="hibernate.search.default.indexBase">/temp/lucene</prop>
        </props>
    </property>
    <property name="packagesToScan" value="com.example.domain" />
</bean>

<bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<tx:annotation-driven transaction-manager="transactionManager" />

要索引的类的代码片段

@Indexed
@Entity
@Table(name = "table_name")
public class VideoInfo implements Serializable {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "title")
    @Field(index=Index.YES, store=Store.NO)
    private String title;

    @Column(name = "tags")
    @Field(index=Index.YES, store=Store.NO)
    private String tags;

    @Column(name = "url")
    private String url;
....

DAO 保存方法(工厂 === sessionFactory bean)

factory.getCurrentSession().save(obj);

可能是什么问题?现在我只是对我应该做什么有点困惑,所以请帮助我:)

编辑:最后重建索引的东西开始正常工作。

【问题讨论】:

  • 你怎么知道新对象没有被索引?有什么症状?
  • 执行搜索找不到新项目,只能找到创建索引之前存在的那些。此外,索引文件未更新(日期未修改)。
  • 您是否尝试手动插入一行并检查索引是否正常工作。不确定您的问题是否与休眠有关。
  • 我用相同的配置做了一个基本的例子,它工作正常。大型数据库可能有问题吗? (索引 700k 个元素)索引是否可能已损坏,因此不要在其中插入新元素? (搜索作品)。谢谢。

标签: spring hibernate indexing hibernate-search


【解决方案1】:

我有同样的问题,但使用 hibernate 4.1、Envers 和 EJB 3。我用注释 @TransactionAttribute 解决了它来管理事务。如果事务没有“正常结束”,则 Envers 侦听器不会启动。我希望它会有所帮助(对不起我的英语)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 2013-04-19
    • 1970-01-01
    • 2023-03-24
    • 2015-12-30
    • 2014-11-17
    • 2019-06-14
    • 2014-10-04
    相关资源
    最近更新 更多