A和B 为一对多如果向parameterType传入一个对象B,那么在select的where语句中可不可获取到A对象的属性值作为限制条件?是不是不支持#{user.login_id}这种写法,只能取到第一层的属性值?不考虑使用map传入多个参数。
mybatis  sql  

解决方案 »

  1.   

    问题解决了,使用${user.login_id}可以取到。可以帮忙解释下#{},${}的区别吗?网上搜下不怎么详细。没人回答。分都给不出去啊。
      

  2.   

    网上不详细?你是在国外上网吗?#就是?   $就是拼接select from table where a = #{pa}等价 "select from table where a = ?"
    select from table where a = ${pa}等价 "select from table where a = "+pa+""
      

  3.   

    额   先谢谢你的回答。是我将#{user.login_id}放在了%%里面,使用拼接的方式就不会出现这种问题。
      

  4.   

    额   先谢谢你的回答。是我将#{user.login_id}放在了%%里面,使用拼接的方式就不会出现这种问题。"select from table where a = %?%" 这是个错误的SQL"select from table where a = '%"+pa+"%'" 这是个正确的SQL正常的用法是: 你的user.login_id就应该是含有%的字符值,把%写到SQL里本身就不是正常的用法