Mysql 使用Hibernate配置更改max_allowed_数据包属性

Mysql 使用Hibernate配置更改max_allowed_数据包属性,mysql,hibernate,spring,Mysql,Hibernate,Spring,有没有办法用Hibernate XML配置文件更改max_allowed_数据包 这是我为冬眠注射的春药 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></prop

有没有办法用Hibernate XML配置文件更改max_allowed_数据包

这是我为冬眠注射的春药

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
    <property name="url"><value>jdbc:mysql://localhost:3306/surveysmart</value></property>
    <property name="username"><value>root</value></property>
    <property name="password"><value>xxx</value></property>
</bean>     

<!-- Session Factory -->
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource">
        <ref local="dataSource" />
    </property>
    <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
    <property name="packagesToScan" value="com.sdl.contacts.vo" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

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

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

com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/surveysmart
根
xxx
org.hibernate.dialogue.mysqldialogue
真的
org.hibernate.context.ThreadLocalSessionContext
更新

max\u allowed\u packet
是一个mysql配置选项。您应该在mysql配置中设置它


如果只想更改此客户端连接的参数,可以尝试将其作为jdbc url中的参数传递

jdbc:mysql://localhost:3306/surveysmart?max_allowed_packet=<value>
jdbc:mysql://localhost:3306/surveysmart?max_allowed_packet=

正如@hvgotcodes所建议的那样,最好更改mysql服务器配置。

根据文档,“此变量的会话值为只读。”不幸的是,对我来说不起作用,插入大blob的尝试仍然失败,出现
PacketTooBigException:Packet for query太大(9371229>4194304)
此设置既适用于服务器,也适用于客户端,因此应在两者上进行调整。