Hibernate4 和 Lobhandler

Hon*_*ons 5 spring lob hibernate-4.x

根据这篇文章,我将会话工厂定义从

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
    p:dataSource-ref="dataSource" p:lobHandler-ref="oracleLobHandler">
    <property name="annotatedClasses">
    <list>
        [..]
Run Code Online (Sandbox Code Playgroud)

进入

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
    p:dataSource-ref="dataSource">
    <property name="annotatedClasses">
    <list>
        [..]
Run Code Online (Sandbox Code Playgroud)

不幸的是,无法像在 hibernate3 中那样定义 LobHandler。由于“Lobhandler”的javadoc中仍有以下内容,因此似乎仍然有必要

总结推荐选项(针对实际 LOB 字段):

  • JDBC 4.0 驱动程序:具有 streamAsLob=true 的 DefaultLobHandler。

  • PostgreSQL:DefaultLobHandler 与 wrapAsLob=true。甲骨文 9i/10g:

  • 带有特定于连接池的 NativeJdbcExtractor 的 OracleLobHandler。

  • 对于所有其他数据库驱动程序(以及可能在某些数据库上变成 LOB 的非 LOB 字段):一个普通的 DefaultLobHandler。

那么,是否还需要在hibernate4中定义lobHandler???如果是这样,我可以在哪里定义它?

bde*_*ler 1

看来你不需要它。他们建议使用本机类型而不是用户类型。

请参阅http://www.sureshpw.com/2012/04/spring-hibernate-4.html