若依框架mysql 搜索中文等于不生效

背景,字段存储的是中文

不生效代码如下

<if test="constellation != null and constellation != ''">
			AND u.constellation = #{constellation}
		</if>

正确生效的代码如下

<if test="constellation != null and constellation != ''">
			AND u.constellation like concat('%', #{constellation}, '%')
		</if>

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: @globaltransactional不生效可能是因为您的代码中没有正确配置全局事务。请确保您的代码中已经正确配置了全局事务,并且在使用@globaltransactional注解时,注解的方法也必须是public类型的。如果您仍然无法解决问题,请提供更多的详细信息,以便我们能够更好地帮助您解决问题。 ### 回答2: 当我们在使用Spring框架时,可能会遇到@Transactional注解无法生效的情况,原因可能有以下几种: 1. 配置问题:首先需要确保项目中已经引入了事务管理器,并且在Spring的配置文件中进行了相关配置。如果没有进行配置或者配置不正确,就会导致@Transactional注解无法生效。 2. 异常被捕获:如果在事务方法中try-catch了异常,而且没有将异常往外抛,就会导致事务不会回滚。如果想要事务回滚,需要在catch块中将异常往外抛。 3. 注解没有被扫描到:如果@Transactional注解所在的类没有被Spring扫描到或者扫描不到该注解,也会导致注解无法生效。这时我们需要在配置文件中增加<context:component-scan/>配置,确保该注解的类被扫描到。 4. 注解使用错误:最后,如果注解的使用不正确,也会导致注解无效。比如在非public的方法上使用@Transactional注解、方法未加上public访问权限,等等。 总之,当我们遇到@Transactional注解无法生效时,需要仔细检查项目中的配置、异常处理、注解扫描以及注解使用等方面,从而解决问题。 ### 回答3: @globaltransactional是MySQL中的一个事务设置参数,当设置为1时,开启全局事务,使得在MyISAM存储引擎中也可以使用事务处理。如果该参数在使用时无法生效,可能是以下原因所导致: 1. 未正确设置参数 在MySQL中设置参数需要使用“set”命令,如set global globaltransactional=ON;。如果没有正确设置参数,该参数将不会生效。 2. 数据库版本不支持 MySQL版本在5.5之前是不支持@globaltransactional参数的。如果使用的MySQL版本在5.5及以下,那么该参数是无法生效的。 3. 存储引擎不支持 MyISAM存储引擎不支持事务处理,而该参数的作用就是使得MyISAM引擎也可以使用事务处理。如果在使用MyISAM引擎时设置该参数,那么该参数也是无法生效的。 4. 架构限制 该参数只能在“全局”环境下有效,如果在某个会话的环境下设置该参数,该参数也是无法生效的。 综上,如果@globaltransactional参数无法生效,可能是由于上述原因所导致。在使用该参数时,需要注意好MySQL的版本以及数据库的架构。同时,需要在正确的环境下设置该参数,才能使其生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值