mybatis 懒加载无效问题(lazy invalid)

 mybatis  mybatis 懒加载无效问题(lazy invalid)已关闭评论
4月 122021
 

使用mybatis,mybatis-config配置文件已使用下面两行配置

<settings>
    <setting name="aggressiveLazyLoading" value="false" />
    <setting name="lazyLoadingEnabled" value="true" /> 
</settings>
但发现还是懒加载无效,其实可能在你的代码里有tostring,equal等默认方法触发了懒加载调用,可以通过添加一个配置项解决问题,使用下面的配置
<settings>
<setting name="aggressiveLazyLoading" value="false" />
<setting name="lazyLoadingEnabled" value="true" /> 
<setting name="lazyLoadTriggerMethods" value=""/>
</settings>

说明:
lazyLoadTriggerMethods : Specifies which Object's methods trigger a lazy load, 
指定触发懒加载的方法名,用逗号分隔, 默认值:equals,clone,hashCode,toString

 

mybatis中#和$的区别

 mybatis, 开发  mybatis中#和$的区别已关闭评论
4月 232020
 

mybatis写sql语句时会看到#{}, ${}的写法,有什么区别呢?

1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。

2. $将传入的数据直接显示生成在sql中。如:select * from ${table};

3. #方式能够很大程度防止sql注入。

4.$方式无法防止Sql注入。

5.$方式一般用于传入数据库对象,例如传入表名,order by、like 语句只能用${}了,用#{}会多个’ ‘导致sql语句失效

6.一般能用#的就别用$.