MyBatis version
3.5.4
Database vendor and version
mysql 5.7.1
Test case or example project
#{entity.creator != null ? entity.creator.id : null }
find the class of ParameterExpression.class
parse property of the expression
to entity.creator != null ? entity.creator.id
.
Steps to reproduce
Expected result
Actual result
Comment From: harawata
Hello, @likly .
#{}
does not accept expression.
<bind />
helps in some cases.
<select ...>
<bind name="creatorId" value="entity.creator != null ? entity.creator.id : null" />
select * from creator where id = #{creatorId}
</select>
Please let us know the details if it didn't work.
Comment From: iimik
Hello, @likly .
#{}
does not accept expression.<bind />
helps in some cases.
<select ...> <bind name="creatorId" value="entity.creator != null ? entity.creator.id : null" /> select * from creator where id = #{creatorId} </select>
Please let us know the details if it didn't work. Thanks, @harawata . It's worked when use
<bind/>
tag. But it will be better if can use like this
<bind name="creator" value="entity.creator != null ? entity.creator.id : null">#{creator}</bind>
I have create a Pull Request
to support this.
Comment From: harawata
For text substitution, you can use ${}
, but it is usually not recommended.
Please see the FAQ.
Comment From: harawata
No response.