我需要能够将默认参数传递给 MyBatis xml 映射器。最初,这就是我正在做的事情:
<select id="someFunction"
parameterType="com.myCompany.Member"
resultMap="memberMap"
statementType="CALLABLE" >
{call dbo.trp_MembersGet_ById_sp (#{memberId,jdbcType=INTEGER,mode=IN}, 1)}
</select>
在这种情况下,默认参数是第二个参数“1”。这似乎可行,但数据库中的所有跟踪都使其成为 BATCH 调用。我需要它们是 RPC。传递一个额外的参数可以解决这个问题:
<select id="someFunction"
parameterType="com.myCompany.Member"
resultMap="memberMap"
statementType="CALLABLE" >
{call dbo.trp_MembersGet_ById_sp (#{memberId,jdbcType=INTEGER,mode=IN},
{secondParam,jdbcType=INTEGER,mode=IN})}
</select>
...但我宁愿让它成为默认参数,这样我就不必让我的模型有这个额外的字段。
所以,理想情况下,我想我想要这样的东西(下面不起作用):
<select id="someFunction"
parameterType="com.myCompany.Member"
resultMap="memberMap"
statementType="CALLABLE" >
{call dbo.trp_MembersGet_ById_sp (#{memberId,jdbcType=INTEGER,mode=IN}, {1,jdbcType=INTEGER,mode=IN})}
</select>
其中“1”是默认值。有没有办法做到这一点?