在休眠中禁用 ONLY_FULL_GROUP_BY

Posted

技术标签:

【中文标题】在休眠中禁用 ONLY_FULL_GROUP_BY【英文标题】:Disable ONLY_FULL_GROUP_BY in hibernate 【发布时间】:2017-06-12 21:28:13 【问题描述】:

我需要。 这是我当前的会话工厂。 我不确定如何在此指定 sql_mode=''。

<bean id="eAgilitySessionFactory"
      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="eAgilitysDataSource"/>
    <property name="configLocation">
        <value>classpath:hibernate.cfg.xml</value>
    </property>
    <property name="configurationClass">
        <value>org.hibernate.cfg.AnnotationConfiguration</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">$mysql.dialect</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.connection.useUnicode">true</prop>
            <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
            <prop key="hibernate.connection.charSet">UTF-8</prop>
            <prop key="hibernate.connection.url">$dwh.db.url</prop>
            <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
         </props>
    </property>
</bean>

【问题讨论】:

【参考方案1】:

我认为您可以在 JDBC 连接字符串中设置sql_mode,例如

jdbc:mysql://localhost:3306/dbName?sessionVariables=sql_mode=''

【讨论】:

适用于 MySQL v 5.17。谢谢!【参考方案2】:

对于 mysql 8.0

jdbc:mysql://localhost:3306/dbName?sessionVariables=&&sql-mode=''

【讨论】:

为什么要加倍&amp;&amp;

以上是关于在休眠中禁用 ONLY_FULL_GROUP_BY的主要内容,如果未能解决你的问题,请参考以下文章

为啥不应该禁用 ONLY_FULL_GROUP_BY

sql 在PHP 5.7.5+中禁用ONLY_FULL_GROUP_BY

如何禁用 only_full_group_by? [复制]

如何在休眠中不继承 Id GeneratedValue(在子类中禁用 @GeneratedValue)

从 Maven 禁用休眠日志记录

禁用树莓派屏幕休眠