我需要能够将默认参数传递给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”是默认值。有没有办法做到这一点?